Rollup merge of #102270 - Nilstrieb:delete-useless-benches, r=TaKO8Ki

Remove benches from `rustc_middle`

These benches benchmark rust langauge features and not the compiler, so they seem to be in the wrong place here. They also all take <1ns, making them pretty useless. Looking at their git history, they just seem to have been carried around for many, many years. This commit ends their journey.
This commit is contained in:
fee1-dead 2022-09-26 13:09:43 +08:00 committed by GitHub
commit 39c6bdc30d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,54 +0,0 @@
#![feature(test)]
extern crate test;
use test::Bencher;
// Static/dynamic method dispatch
struct Struct {
field: isize,
}
trait Trait {
fn method(&self) -> isize;
}
impl Trait for Struct {
fn method(&self) -> isize {
self.field
}
}
#[bench]
fn trait_vtable_method_call(b: &mut Bencher) {
let s = Struct { field: 10 };
let t = &s as &dyn Trait;
b.iter(|| t.method());
}
#[bench]
fn trait_static_method_call(b: &mut Bencher) {
let s = Struct { field: 10 };
b.iter(|| s.method());
}
// Overhead of various match forms
#[bench]
fn option_some(b: &mut Bencher) {
let x = Some(10);
b.iter(|| match x {
Some(y) => y,
None => 11,
});
}
#[bench]
fn vec_pattern(b: &mut Bencher) {
let x = [1, 2, 3, 4, 5, 6];
b.iter(|| match x {
[1, 2, 3, ..] => 10,
_ => 11,
});
}