|  | // Copyright 2023 The Tint Authors. | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //     http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | // File generated by tools/src/cmd/gen | 
|  | // using the template: | 
|  | //   src/tint/builtin/attribute_bench.cc.tmpl | 
|  | // | 
|  | // Do not modify this file directly | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | #include "src/tint/builtin/attribute.h" | 
|  |  | 
|  | #include <array> | 
|  |  | 
|  | #include "benchmark/benchmark.h" | 
|  |  | 
|  | namespace tint::builtin { | 
|  | namespace { | 
|  |  | 
|  | void AttributeParser(::benchmark::State& state) { | 
|  | const char* kStrings[] = { | 
|  | "alccn", | 
|  | "3g", | 
|  | "aVign", | 
|  | "align", | 
|  | "alig1", | 
|  | "qqlJn", | 
|  | "alill7n", | 
|  | "ppqqndnHH", | 
|  | "bicv", | 
|  | "bndiGg", | 
|  | "binding", | 
|  | "bindiivg", | 
|  | "8WWnding", | 
|  | "bxxding", | 
|  | "bXltigg", | 
|  | "ultXn", | 
|  | "buil3in", | 
|  | "builtin", | 
|  | "Euiltin", | 
|  | "bPTTltin", | 
|  | "builtdxx", | 
|  | "c44mpute", | 
|  | "coSSpuVVe", | 
|  | "RomR22e", | 
|  | "compute", | 
|  | "cFpu9e", | 
|  | "comute", | 
|  | "VOORRHte", | 
|  | "dyagnstic", | 
|  | "d77agnnnsllrrc", | 
|  | "dia400ostic", | 
|  | "diagnostic", | 
|  | "danstooc", | 
|  | "dignszzic", | 
|  | "d11ansppiic", | 
|  | "XXragment", | 
|  | "fIIa9955nnnt", | 
|  | "aarHHgmenYSS", | 
|  | "fragment", | 
|  | "fkkaet", | 
|  | "gjamRRn", | 
|  | "fabmnt", | 
|  | "gjoup", | 
|  | "goup", | 
|  | "goq", | 
|  | "group", | 
|  | "Nroup", | 
|  | "govv", | 
|  | "gruQQ", | 
|  | "r", | 
|  | "jd", | 
|  | "NNw", | 
|  | "id", | 
|  | "i", | 
|  | "rrd", | 
|  | "iG", | 
|  | "FFnterpolate", | 
|  | "iEtrplat", | 
|  | "inerporrate", | 
|  | "interpolate", | 
|  | "inteplate", | 
|  | "XterJJoDate", | 
|  | "inepol8t", | 
|  | "nvark1n", | 
|  | "invriant", | 
|  | "Jnvarant", | 
|  | "invariant", | 
|  | "invaricnt", | 
|  | "invariaOt", | 
|  | "invttKK_ianvv", | 
|  | "lxxcati8", | 
|  | "Focqq__o", | 
|  | "locaiqqn", | 
|  | "location", | 
|  | "loc33tio6", | 
|  | "ltto6at9QQn", | 
|  | "loc66tio", | 
|  | "mOxt_u6zz", | 
|  | "musyy_use", | 
|  | "mHH_use", | 
|  | "must_use", | 
|  | "qWW4st_se", | 
|  | "musOO_se", | 
|  | "ust_uYe", | 
|  | "i", | 
|  | "Fie", | 
|  | "siw", | 
|  | "size", | 
|  | "zff", | 
|  | "sizqK", | 
|  | "s3zmm", | 
|  | "ertex", | 
|  | "vereq", | 
|  | "vbtbbx", | 
|  | "vertex", | 
|  | "irtex", | 
|  | "vOOteq", | 
|  | "vertTvvx", | 
|  | "woFFkgroup_size", | 
|  | "wfr00grPupsiQe", | 
|  | "workgrouP_size", | 
|  | "workgroup_size", | 
|  | "workgroup77sise", | 
|  | "RRobbkgroupCsize", | 
|  | "wXXrkgroup_size", | 
|  | }; | 
|  | for (auto _ : state) { | 
|  | for (auto* str : kStrings) { | 
|  | auto result = ParseAttribute(str); | 
|  | benchmark::DoNotOptimize(result); | 
|  | } | 
|  | } | 
|  | }  // NOLINT(readability/fn_size) | 
|  |  | 
|  | BENCHMARK(AttributeParser); | 
|  |  | 
|  | }  // namespace | 
|  | }  // namespace tint::builtin |