Rollup merge of #51658 - oli-obk:unregress_perf, r=nikomatsakis
Only do sanity check with debug assertions on r? @nnethercote I'm slighty confused. These changes address code that the `unused-warnings` benchmark doesn't go through, yet I see a 5% improvement to nightly on the `check` run, and no improvement on the other runs. Maybe this change allows unrelated code in the same function to be better optimized?
This commit is contained in:
commit
1ebd9adef4
@ -124,10 +124,10 @@ impl<'cx, 'gcx, 'tcx> TypeFolder<'gcx, 'tcx> for QueryNormalizer<'cx, 'gcx, 'tcx
|
||||
let concrete_ty = generic_ty.subst(self.tcx(), substs);
|
||||
self.anon_depth += 1;
|
||||
if concrete_ty == ty {
|
||||
println!("generic_ty: {:#?}", generic_ty);
|
||||
println!("substs {:#?}", substs);
|
||||
bug!("infinite recursion generic_ty: {:#?}, substs: {:#?}, \
|
||||
concrete_ty: {:#?}, ty: {:#?}", generic_ty, substs, concrete_ty,
|
||||
ty);
|
||||
}
|
||||
assert_ne!(concrete_ty, ty, "infinite recursion");
|
||||
let folded_ty = self.fold_ty(concrete_ty);
|
||||
self.anon_depth -= 1;
|
||||
folded_ty
|
||||
|
Loading…
x
Reference in New Issue
Block a user