| // Copyright 2025 The Dawn & Tint Authors |
| // |
| // Redistribution and use in source and binary forms, with or without |
| // modification, are permitted provided that the following conditions are met: |
| // |
| // 1. Redistributions of source code must retain the above copyright notice, this |
| // list of conditions and the following disclaimer. |
| // |
| // 2. Redistributions in binary form must reproduce the above copyright notice, |
| // this list of conditions and the following disclaimer in the documentation |
| // and/or other materials provided with the distribution. |
| // |
| // 3. Neither the name of the copyright holder nor the names of its |
| // contributors may be used to endorse or promote products derived from |
| // this software without specific prior written permission. |
| // |
| // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
| // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // File generated by 'tools/src/cmd/gen' using the template: |
| // src/tint/cmd/bench/enums_wgsl_bench.cc.tmpl |
| // |
| // To regenerate run: './tools/run gen' |
| // |
| // Do not modify this file directly |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| // clang-format off |
| |
| #include <array> |
| |
| #include "benchmark/benchmark.h" |
| #include "src/tint/lang/wgsl/enums.h" |
| |
| namespace tint::wgsl { |
| namespace { |
| |
| void CoreDiagnosticRuleParser(::benchmark::State& state) { |
| const char* kStrings[] = { |
| "deriative_unccformity", |
| "dlivative_3iformiy", |
| "derivative_uniforVity", |
| "derivative_uniformity", |
| "derivative_uniform1ty", |
| "derivativeJunifqrmity", |
| "derivative_unifllrmit77", |
| "subgopppqquniformitHH", |
| "subgrou_cformity", |
| "subgGoup_unifombty", |
| "subgroup_uniformity", |
| "suvgroup_uniformiiiy", |
| "subgroWWp8uniformity", |
| "subgroup_uifoxxmiMy", |
| }; |
| for (auto _ : state) { |
| for (auto* str : kStrings) { |
| auto result = ParseCoreDiagnosticRule(str); |
| benchmark::DoNotOptimize(result); |
| } |
| } |
| } // NOLINT(readability/fn_size) |
| |
| BENCHMARK(CoreDiagnosticRuleParser); |
| void ChromiumDiagnosticRuleParser(::benchmark::State& state) { |
| const char* kStrings[] = { |
| "sbgroup_ggatrix_uniformXty", |
| "suVroup_matrx_uniforXitu", |
| "subgroup_ma3rix_uniformity", |
| "subgroup_matrix_uniformity", |
| "subgroup_matrix_uniformitE", |
| "subgroup_atrix_uniTTPormity", |
| "suxxdgroup_matri_uniformity", |
| "44nreachable_code", |
| "unreaVVhabSSe_code", |
| "unre22chabR_Rode", |
| "unreachable_code", |
| "nFeachable_9ode", |
| "unrachable_code", |
| "VnreacaRRlH_OOode", |
| }; |
| for (auto _ : state) { |
| for (auto* str : kStrings) { |
| auto result = ParseChromiumDiagnosticRule(str); |
| benchmark::DoNotOptimize(result); |
| } |
| } |
| } // NOLINT(readability/fn_size) |
| |
| BENCHMARK(ChromiumDiagnosticRuleParser); |
| void DiagnosticSeverityParser(::benchmark::State& state) { |
| const char* kStrings[] = { |
| "rryr", |
| "n77rrlrGr", |
| "erro40", |
| "error", |
| "oor", |
| "erzz", |
| "1ippor", |
| "XXnfo", |
| "55nII9nn", |
| "iSSfHHaa", |
| "info", |
| "kk", |
| "gRR", |
| "ib", |
| "ojf", |
| "of", |
| "q", |
| "off", |
| "oNN", |
| "ov", |
| "Qff", |
| "waffir", |
| "warnijg", |
| "wNNwnin8", |
| "warning", |
| "waring", |
| "wrrrning", |
| "Garning", |
| }; |
| for (auto _ : state) { |
| for (auto* str : kStrings) { |
| auto result = ParseDiagnosticSeverity(str); |
| benchmark::DoNotOptimize(result); |
| } |
| } |
| } // NOLINT(readability/fn_size) |
| |
| BENCHMARK(DiagnosticSeverityParser); |
| void ExtensionParser(::benchmark::State& state) { |
| const char* kStrings[] = { |
| "atomic_vec2u_min_FFax", |
| "aEmicvec2u_in_max", |
| "arroic_vec2u_min_max", |
| "atomic_vec2u_min_max", |
| "atomicvc2u_min_max", |
| "atmiD_XecJJu_min_max", |
| "atmic_vec2uminmax", |
| "chromkm_is11ble_unifrmity_analysis", |
| "chrmium_disable_uniformity_analysis", |
| "chromium_disabe_uniformity_analyJis", |
| "chromium_disable_uniformity_analysis", |
| "chromium_disable_uniformcty_analysis", |
| "chromium_disable_uniformity_analysOs", |
| "chromium_disttble_un__formitvv_KKnalysis", |
| "chromium_epxxrimenta8_barycentric_co5rd", |
| "chromim_experimental_baryc__ntric_qqorF", |
| "chromium_exerimental_bqqrycentric_coord", |
| "chromium_experimental_barycentric_coord", |
| "h66omiu33_experimenOal_barycentric_coord", |
| "ch6ottiumooexperQQmental_baryce9tric_coord", |
| "chomium_experimen66al_barycentric_coord", |
| "hromxum_experimental_zzr66mebufferOfetch", |
| "chromium_experimental_framebyyffer_fetch", |
| "chrmium_experimental_fraeHHuffer_feZch", |
| "chromium_experimental_framebuffer_fetch", |
| "chromium_expeimeWWtal_framebuq4fer_fetch", |
| "chromium_experimental_fOOamebuffer_etch", |
| "chroomium_experimntalhframebuffr_fetcY", |
| "chomium_experiental_pixel_loca", |
| "chromum_experimental_pixel_lFcal", |
| "chromium_expewimentalpixel_local", |
| "chromium_experimental_pixel_local", |
| "chromffum_expeKmentG_pixel_local", |
| "chromiuq_KKxperimental_pixel_local", |
| "chromium_eFpe3imental_mmixel_local", |
| "chromium_experimental_reource_table", |
| "chromium_experimentalresourcq_table", |
| "chromium_ebbprimental_resource_table", |
| "chromium_experimental_resource_table", |
| "chromium_expirimental_resource_tabe", |
| "chromium_experimentl_resoOOrce_tablq", |
| "chromium_experimental_TTvvsource_table", |
| "chromium_experimental_subgrouFF_matrix", |
| "chromifm_experimenta00PsubgroQp_mtrix", |
| "chromium_experPmental_subgroup_matrix", |
| "chromium_experimental_subgroup_matrix", |
| "cssomium_experimental_subgroup_mat77ix", |
| "chromium_exbberimenCal_subgroup_mRRtrix", |
| "chromium_experimental_subgroup_mXXtrix", |
| "chromium_expqrimental_CCubgOOoup_size_OOontol", |
| "chromim_experimentaL_subgroup_size_contuol", |
| "chromiuX_experimental_subgroup_size_control", |
| "chromium_experimental_subgroup_size_control", |
| "chromium_experimental_subgroup_size_contol", |
| "chromium_exerimentlqqsubgroup_size_ontOol", |
| "chromium_experimental_subgroup_size_contr22l", |
| "chzzomium0inteXXny_input_attachments", |
| "chromium_internalVVinpP_aitachments", |
| "chnnomium_internalCinput_attachmnts", |
| "chromium_internal_input_attachments", |
| "chrHHmim_inqqernalinput_attachmentAA", |
| "chromium_internal_input_attchments", |
| "chromiuf_internal_input_KKachments", |
| "clipditaPcggs", |
| "clip_istances", |
| "4lip_disTTaNcec", |
| "clip_distances", |
| "cli_distpp7lces", |
| "cgzip_dstancNs", |
| "uulip_bitanXXes", |
| "dual_soure_blending", |
| "dualsoQrce_bled88nK", |
| "dual_souce_blend9qg", |
| "dual_source_blending", |
| "dual_source_bl11nding", |
| "Fuaii_source_bl22ding", |
| "dual_soure_b77ending", |
| "NN6", |
| "VV16", |
| "Fw11W", |
| "f16", |
| "ww6", |
| "fD6", |
| "fK", |
| "primif11ve_inPPeh", |
| "prmitive_index", |
| "primitive_indeYY", |
| "primitive_index", |
| "pHHimittveikkdex", |
| "rrrimitive_index", |
| "pWWimitive_ndssx", |
| "suYroups", |
| "sbgroqpL", |
| "sfbv22rouus", |
| "subgroups", |
| "subgous", |
| "suYgrous", |
| "subyr77upEY", |
| }; |
| for (auto _ : state) { |
| for (auto* str : kStrings) { |
| auto result = ParseExtension(str); |
| benchmark::DoNotOptimize(result); |
| } |
| } |
| } // NOLINT(readability/fn_size) |
| |
| BENCHMARK(ExtensionParser); |
| |
| } // namespace |
| } // namespace tint::wgsl |
| |
| // clang-format on |