| //===- GetIntrinsicInfoTableEntries.cpp - IIT signature benchmark ---------===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #include "benchmark/benchmark.h" | |
| #include "llvm/ADT/SmallVector.h" | |
| #include "llvm/IR/Intrinsics.h" | |
| using namespace llvm; | |
| using namespace Intrinsic; | |
| static void BM_GetIntrinsicInfoTableEntries(benchmark::State &state) { | |
| SmallVector<IITDescriptor> Table; | |
| for (auto _ : state) { | |
| for (ID ID = 1; ID < num_intrinsics; ++ID) { | |
| // This makes sure the vector does not keep growing, as well as after the | |
| // first iteration does not result in additional allocations. | |
| Table.clear(); | |
| getIntrinsicInfoTableEntries(ID, Table); | |
| } | |
| } | |
| } | |
| BENCHMARK(BM_GetIntrinsicInfoTableEntries); | |
| BENCHMARK_MAIN(); |