diff --git a/collector/compile-benchmarks/new-trait-stress/0-new-trait.patch b/collector/compile-benchmarks/new-trait-stress/0-new-trait.patch new file mode 100644 index 0000000000..5b4882e90d --- /dev/null +++ b/collector/compile-benchmarks/new-trait-stress/0-new-trait.patch @@ -0,0 +1,15 @@ +diff --git a/src/main.rs b/src/main.rs +index 62abf725..90b95945 100644 +--- a/src/main.rs ++++ b/src/main.rs +@@ -2,6 +2,10 @@ fn main() { + foo0(); + } + ++trait Trait { ++ fn foo() {} ++} ++ + struct S; + + impl S { diff --git a/collector/compile-benchmarks/new-trait-stress/Cargo.lock b/collector/compile-benchmarks/new-trait-stress/Cargo.lock new file mode 100644 index 0000000000..1c1cdfaf72 --- /dev/null +++ b/collector/compile-benchmarks/new-trait-stress/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "new-trait-stress" +version = "0.1.0" diff --git a/collector/compile-benchmarks/new-trait-stress/Cargo.toml b/collector/compile-benchmarks/new-trait-stress/Cargo.toml new file mode 100644 index 0000000000..e0769079c9 --- /dev/null +++ b/collector/compile-benchmarks/new-trait-stress/Cargo.toml @@ -0,0 +1,5 @@ +[package] +name = "new-trait-stress" +version = "0.1.0" + +[workspace] diff --git a/collector/compile-benchmarks/new-trait-stress/perf-config.json b/collector/compile-benchmarks/new-trait-stress/perf-config.json new file mode 100644 index 0000000000..99427127cc --- /dev/null +++ b/collector/compile-benchmarks/new-trait-stress/perf-config.json @@ -0,0 +1,4 @@ +{ + "category": "secondary", + "artifact": "binary" +} \ No newline at end of file diff --git a/collector/compile-benchmarks/new-trait-stress/src/main.rs b/collector/compile-benchmarks/new-trait-stress/src/main.rs new file mode 100644 index 0000000000..62abf725d5 --- /dev/null +++ b/collector/compile-benchmarks/new-trait-stress/src/main.rs @@ -0,0 +1,608 @@ +fn main() { + foo0(); +} + +struct S; + +impl S { + fn foo() {} +} + +fn foo0() { + S::foo(); + println!("foo0"); + foo1(); +} + +fn foo1() { + S::foo(); + println!("foo1"); + foo2(); +} + +fn foo2() { + S::foo(); + println!("foo2"); + foo3(); +} + +fn foo3() { + S::foo(); + println!("foo3"); + foo4(); +} + +fn foo4() { + S::foo(); + println!("foo4"); + foo5(); +} + +fn foo5() { + S::foo(); + println!("foo5"); + foo6(); +} + +fn foo6() { + S::foo(); + println!("foo6"); + foo7(); +} + +fn foo7() { + S::foo(); + println!("foo7"); + foo8(); +} + +fn foo8() { + S::foo(); + println!("foo8"); + foo9(); +} + +fn foo9() { + S::foo(); + println!("foo9"); + foo10(); +} + +fn foo10() { + S::foo(); + println!("foo10"); + foo11(); +} + +fn foo11() { + S::foo(); + println!("foo11"); + foo12(); +} + +fn foo12() { + S::foo(); + println!("foo12"); + foo13(); +} + +fn foo13() { + S::foo(); + println!("foo13"); + foo14(); +} + +fn foo14() { + S::foo(); + println!("foo14"); + foo15(); +} + +fn foo15() { + S::foo(); + println!("foo15"); + foo16(); +} + +fn foo16() { + S::foo(); + println!("foo16"); + foo17(); +} + +fn foo17() { + S::foo(); + println!("foo17"); + foo18(); +} + +fn foo18() { + S::foo(); + println!("foo18"); + foo19(); +} + +fn foo19() { + S::foo(); + println!("foo19"); + foo20(); +} + +fn foo20() { + S::foo(); + println!("foo20"); + foo21(); +} + +fn foo21() { + S::foo(); + println!("foo21"); + foo22(); +} + +fn foo22() { + S::foo(); + println!("foo22"); + foo23(); +} + +fn foo23() { + S::foo(); + println!("foo23"); + foo24(); +} + +fn foo24() { + S::foo(); + println!("foo24"); + foo25(); +} + +fn foo25() { + S::foo(); + println!("foo25"); + foo26(); +} + +fn foo26() { + S::foo(); + println!("foo26"); + foo27(); +} + +fn foo27() { + S::foo(); + println!("foo27"); + foo28(); +} + +fn foo28() { + S::foo(); + println!("foo28"); + foo29(); +} + +fn foo29() { + S::foo(); + println!("foo29"); + foo30(); +} + +fn foo30() { + S::foo(); + println!("foo30"); + foo31(); +} + +fn foo31() { + S::foo(); + println!("foo31"); + foo32(); +} + +fn foo32() { + S::foo(); + println!("foo32"); + foo33(); +} + +fn foo33() { + S::foo(); + println!("foo33"); + foo34(); +} + +fn foo34() { + S::foo(); + println!("foo34"); + foo35(); +} + +fn foo35() { + S::foo(); + println!("foo35"); + foo36(); +} + +fn foo36() { + S::foo(); + println!("foo36"); + foo37(); +} + +fn foo37() { + S::foo(); + println!("foo37"); + foo38(); +} + +fn foo38() { + S::foo(); + println!("foo38"); + foo39(); +} + +fn foo39() { + S::foo(); + println!("foo39"); + foo40(); +} + +fn foo40() { + S::foo(); + println!("foo40"); + foo41(); +} + +fn foo41() { + S::foo(); + println!("foo41"); + foo42(); +} + +fn foo42() { + S::foo(); + println!("foo42"); + foo43(); +} + +fn foo43() { + S::foo(); + println!("foo43"); + foo44(); +} + +fn foo44() { + S::foo(); + println!("foo44"); + foo45(); +} + +fn foo45() { + S::foo(); + println!("foo45"); + foo46(); +} + +fn foo46() { + S::foo(); + println!("foo46"); + foo47(); +} + +fn foo47() { + S::foo(); + println!("foo47"); + foo48(); +} + +fn foo48() { + S::foo(); + println!("foo48"); + foo49(); +} + +fn foo49() { + S::foo(); + println!("foo49"); + foo50(); +} + +fn foo50() { + S::foo(); + println!("foo50"); + foo51(); +} + +fn foo51() { + S::foo(); + println!("foo51"); + foo52(); +} + +fn foo52() { + S::foo(); + println!("foo52"); + foo53(); +} + +fn foo53() { + S::foo(); + println!("foo53"); + foo54(); +} + +fn foo54() { + S::foo(); + println!("foo54"); + foo55(); +} + +fn foo55() { + S::foo(); + println!("foo55"); + foo56(); +} + +fn foo56() { + S::foo(); + println!("foo56"); + foo57(); +} + +fn foo57() { + S::foo(); + println!("foo57"); + foo58(); +} + +fn foo58() { + S::foo(); + println!("foo58"); + foo59(); +} + +fn foo59() { + S::foo(); + println!("foo59"); + foo60(); +} + +fn foo60() { + S::foo(); + println!("foo60"); + foo61(); +} + +fn foo61() { + S::foo(); + println!("foo61"); + foo62(); +} + +fn foo62() { + S::foo(); + println!("foo62"); + foo63(); +} + +fn foo63() { + S::foo(); + println!("foo63"); + foo64(); +} + +fn foo64() { + S::foo(); + println!("foo64"); + foo65(); +} + +fn foo65() { + S::foo(); + println!("foo65"); + foo66(); +} + +fn foo66() { + S::foo(); + println!("foo66"); + foo67(); +} + +fn foo67() { + S::foo(); + println!("foo67"); + foo68(); +} + +fn foo68() { + S::foo(); + println!("foo68"); + foo69(); +} + +fn foo69() { + S::foo(); + println!("foo69"); + foo70(); +} + +fn foo70() { + S::foo(); + println!("foo70"); + foo71(); +} + +fn foo71() { + S::foo(); + println!("foo71"); + foo72(); +} + +fn foo72() { + S::foo(); + println!("foo72"); + foo73(); +} + +fn foo73() { + S::foo(); + println!("foo73"); + foo74(); +} + +fn foo74() { + S::foo(); + println!("foo74"); + foo75(); +} + +fn foo75() { + S::foo(); + println!("foo75"); + foo76(); +} + +fn foo76() { + S::foo(); + println!("foo76"); + foo77(); +} + +fn foo77() { + S::foo(); + println!("foo77"); + foo78(); +} + +fn foo78() { + S::foo(); + println!("foo78"); + foo79(); +} + +fn foo79() { + S::foo(); + println!("foo79"); + foo80(); +} + +fn foo80() { + S::foo(); + println!("foo80"); + foo81(); +} + +fn foo81() { + S::foo(); + println!("foo81"); + foo82(); +} + +fn foo82() { + S::foo(); + println!("foo82"); + foo83(); +} + +fn foo83() { + S::foo(); + println!("foo83"); + foo84(); +} + +fn foo84() { + S::foo(); + println!("foo84"); + foo85(); +} + +fn foo85() { + S::foo(); + println!("foo85"); + foo86(); +} + +fn foo86() { + S::foo(); + println!("foo86"); + foo87(); +} + +fn foo87() { + S::foo(); + println!("foo87"); + foo88(); +} + +fn foo88() { + S::foo(); + println!("foo88"); + foo89(); +} + +fn foo89() { + S::foo(); + println!("foo89"); + foo90(); +} + +fn foo90() { + S::foo(); + println!("foo90"); + foo91(); +} + +fn foo91() { + S::foo(); + println!("foo91"); + foo92(); +} + +fn foo92() { + S::foo(); + println!("foo92"); + foo93(); +} + +fn foo93() { + S::foo(); + println!("foo93"); + foo94(); +} + +fn foo94() { + S::foo(); + println!("foo94"); + foo95(); +} + +fn foo95() { + S::foo(); + println!("foo95"); + foo96(); +} + +fn foo96() { + S::foo(); + println!("foo96"); + foo97(); +} + +fn foo97() { + S::foo(); + println!("foo97"); + foo98(); +} + +fn foo98() { + S::foo(); + println!("foo98"); + foo99(); +} + +fn foo99() { + S::foo(); + println!("foo99"); +} diff --git a/collector/src/benchmark_set/compile_benchmarks.rs b/collector/src/benchmark_set/compile_benchmarks.rs index 18e8e1a2e8..85cbe8cc48 100644 --- a/collector/src/benchmark_set/compile_benchmarks.rs +++ b/collector/src/benchmark_set/compile_benchmarks.rs @@ -67,3 +67,4 @@ pub(super) const UNIFY_LINEARLY: &str = "unify-linearly"; pub(super) const UNUSED_WARNINGS: &str = "unused-warnings"; pub(super) const WF_PROJECTION_STRESS_65510: &str = "wf-projection-stress-65510"; pub(super) const WG_GRAMMAR: &str = "wg-grammar"; +pub(super) const NEW_TRAIT_STRESS: &str = "new-trait-stress"; diff --git a/collector/src/benchmark_set/mod.rs b/collector/src/benchmark_set/mod.rs index ace1f257a4..a9fa13d8fd 100644 --- a/collector/src/benchmark_set/mod.rs +++ b/collector/src/benchmark_set/mod.rs @@ -119,6 +119,7 @@ pub fn get_benchmark_sets_for_target(target: Target) -> Vec { compile(UNUSED_WARNINGS), compile(WF_PROJECTION_STRESS_65510), compile(WG_GRAMMAR), + compile(NEW_TRAIT_STRESS), ] }; @@ -184,6 +185,7 @@ pub fn get_benchmark_sets_for_target(target: Target) -> Vec { compile(UNUSED_WARNINGS), compile(WF_PROJECTION_STRESS_65510), compile(WG_GRAMMAR), + compile(NEW_TRAIT_STRESS), ]; vec![ BenchmarkSet {