brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.3 KiB · e29b371 Raw
203 lines · cpp
1#include "MemorySizeDistributions.h"2 3#include "llvm/Support/ErrorHandling.h"4#include "llvm/Support/raw_ostream.h"5 6namespace llvm {7namespace libc_benchmarks {8 9static constexpr double MemmoveGoogleA[] = {10#include "distributions/MemmoveGoogleA.csv"11};12static constexpr double MemmoveGoogleB[] = {13#include "distributions/MemmoveGoogleB.csv"14};15static constexpr double MemmoveGoogleD[] = {16#include "distributions/MemmoveGoogleD.csv"17};18static constexpr double MemmoveGoogleQ[] = {19#include "distributions/MemmoveGoogleQ.csv"20};21static constexpr double MemmoveGoogleL[] = {22#include "distributions/MemmoveGoogleL.csv"23};24static constexpr double MemmoveGoogleM[] = {25#include "distributions/MemmoveGoogleM.csv"26};27static constexpr double MemmoveGoogleS[] = {28#include "distributions/MemmoveGoogleS.csv"29};30static constexpr double MemmoveGoogleW[] = {31#include "distributions/MemmoveGoogleW.csv"32};33static constexpr double MemmoveGoogleU[] = {34#include "distributions/MemmoveGoogleU.csv"35};36static constexpr double MemcmpGoogleA[] = {37#include "distributions/MemcmpGoogleA.csv"38};39static constexpr double MemcmpGoogleB[] = {40#include "distributions/MemcmpGoogleB.csv"41};42static constexpr double MemcmpGoogleD[] = {43#include "distributions/MemcmpGoogleD.csv"44};45static constexpr double MemcmpGoogleQ[] = {46#include "distributions/MemcmpGoogleQ.csv"47};48static constexpr double MemcmpGoogleL[] = {49#include "distributions/MemcmpGoogleL.csv"50};51static constexpr double MemcmpGoogleM[] = {52#include "distributions/MemcmpGoogleM.csv"53};54static constexpr double MemcmpGoogleS[] = {55#include "distributions/MemcmpGoogleS.csv"56};57static constexpr double MemcmpGoogleW[] = {58#include "distributions/MemcmpGoogleW.csv"59};60static constexpr double MemcmpGoogleU[] = {61#include "distributions/MemcmpGoogleU.csv"62};63static constexpr double MemcpyGoogleA[] = {64#include "distributions/MemcpyGoogleA.csv"65};66static constexpr double MemcpyGoogleB[] = {67#include "distributions/MemcpyGoogleB.csv"68};69static constexpr double MemcpyGoogleD[] = {70#include "distributions/MemcpyGoogleD.csv"71};72static constexpr double MemcpyGoogleQ[] = {73#include "distributions/MemcpyGoogleQ.csv"74};75static constexpr double MemcpyGoogleL[] = {76#include "distributions/MemcpyGoogleL.csv"77};78static constexpr double MemcpyGoogleM[] = {79#include "distributions/MemcpyGoogleM.csv"80};81static constexpr double MemcpyGoogleS[] = {82#include "distributions/MemcpyGoogleS.csv"83};84static constexpr double MemcpyGoogleW[] = {85#include "distributions/MemcpyGoogleW.csv"86};87static constexpr double MemcpyGoogleU[] = {88#include "distributions/MemcpyGoogleU.csv"89};90static constexpr double MemsetGoogleA[] = {91#include "distributions/MemsetGoogleA.csv"92};93static constexpr double MemsetGoogleB[] = {94#include "distributions/MemsetGoogleB.csv"95};96static constexpr double MemsetGoogleD[] = {97#include "distributions/MemsetGoogleD.csv"98};99static constexpr double MemsetGoogleQ[] = {100#include "distributions/MemsetGoogleQ.csv"101};102static constexpr double MemsetGoogleL[] = {103#include "distributions/MemsetGoogleL.csv"104};105static constexpr double MemsetGoogleM[] = {106#include "distributions/MemsetGoogleM.csv"107};108static constexpr double MemsetGoogleS[] = {109#include "distributions/MemsetGoogleS.csv"110};111static constexpr double MemsetGoogleW[] = {112#include "distributions/MemsetGoogleW.csv"113};114static constexpr double MemsetGoogleU[] = {115#include "distributions/MemsetGoogleU.csv"116};117static constexpr double Uniform384To4096[] = {118#include "distributions/Uniform384To4096.csv"119};120 121ArrayRef<MemorySizeDistribution> getMemmoveSizeDistributions() {122  static constexpr MemorySizeDistribution kDistributions[] = {123      {"memmove Google A", MemmoveGoogleA},124      {"memmove Google B", MemmoveGoogleB},125      {"memmove Google D", MemmoveGoogleD},126      {"memmove Google L", MemmoveGoogleL},127      {"memmove Google M", MemmoveGoogleM},128      {"memmove Google Q", MemmoveGoogleQ},129      {"memmove Google S", MemmoveGoogleS},130      {"memmove Google U", MemmoveGoogleU},131      {"memmove Google W", MemmoveGoogleW},132      {"uniform 384 to 4096", Uniform384To4096},133  };134  return kDistributions;135}136 137ArrayRef<MemorySizeDistribution> getMemcpySizeDistributions() {138  static constexpr MemorySizeDistribution kDistributions[] = {139      {"memcpy Google A", MemcpyGoogleA},140      {"memcpy Google B", MemcpyGoogleB},141      {"memcpy Google D", MemcpyGoogleD},142      {"memcpy Google L", MemcpyGoogleL},143      {"memcpy Google M", MemcpyGoogleM},144      {"memcpy Google Q", MemcpyGoogleQ},145      {"memcpy Google S", MemcpyGoogleS},146      {"memcpy Google U", MemcpyGoogleU},147      {"memcpy Google W", MemcpyGoogleW},148      {"uniform 384 to 4096", Uniform384To4096},149  };150  return kDistributions;151}152 153ArrayRef<MemorySizeDistribution> getMemsetSizeDistributions() {154  static constexpr MemorySizeDistribution kDistributions[] = {155      {"memset Google A", MemsetGoogleA},156      {"memset Google B", MemsetGoogleB},157      {"memset Google D", MemsetGoogleD},158      {"memset Google L", MemsetGoogleL},159      {"memset Google M", MemsetGoogleM},160      {"memset Google Q", MemsetGoogleQ},161      {"memset Google S", MemsetGoogleS},162      {"memset Google U", MemsetGoogleU},163      {"memset Google W", MemsetGoogleW},164      {"uniform 384 to 4096", Uniform384To4096},165  };166  return kDistributions;167}168 169ArrayRef<MemorySizeDistribution> getMemcmpSizeDistributions() {170  static constexpr MemorySizeDistribution kDistributions[] = {171      {"memcmp Google A", MemcmpGoogleA},172      {"memcmp Google B", MemcmpGoogleB},173      {"memcmp Google D", MemcmpGoogleD},174      {"memcmp Google L", MemcmpGoogleL},175      {"memcmp Google M", MemcmpGoogleM},176      {"memcmp Google Q", MemcmpGoogleQ},177      {"memcmp Google S", MemcmpGoogleS},178      {"memcmp Google U", MemcmpGoogleU},179      {"memcmp Google W", MemcmpGoogleW},180      {"uniform 384 to 4096", Uniform384To4096},181  };182  return kDistributions;183}184 185MemorySizeDistribution186getDistributionOrDie(ArrayRef<MemorySizeDistribution> Distributions,187                     StringRef Name) {188  for (const auto &MSD : Distributions)189    if (MSD.Name == Name)190      return MSD;191 192  std::string Message;193  raw_string_ostream Stream(Message);194  Stream << "Unknown MemorySizeDistribution '" << Name195         << "', available distributions:\n";196  for (const auto &MSD : Distributions)197    Stream << "'" << MSD.Name << "'\n";198  report_fatal_error(Message);199}200 201} // namespace libc_benchmarks202} // namespace llvm203