24 "#3d50c3",
"#4055c8",
"#4358cb",
"#465ecf",
"#4961d2",
"#4c66d6",
"#4f69d9",
25 "#536edd",
"#5572df",
"#5977e3",
"#5b7ae5",
"#5f7fe8",
"#6282ea",
"#6687ed",
26 "#6a8bef",
"#6c8ff1",
"#7093f3",
"#7396f5",
"#779af7",
"#7a9df8",
"#7ea1fa",
27 "#81a4fb",
"#85a8fc",
"#88abfd",
"#8caffe",
"#8fb1fe",
"#93b5fe",
"#96b7ff",
28 "#9abbff",
"#9ebeff",
"#a1c0ff",
"#a5c3fe",
"#a7c5fe",
"#abc8fd",
"#aec9fc",
29 "#b2ccfb",
"#b5cdfa",
"#b9d0f9",
"#bbd1f8",
"#bfd3f6",
"#c1d4f4",
"#c5d6f2",
30 "#c7d7f0",
"#cbd8ee",
"#cedaeb",
"#d1dae9",
"#d4dbe6",
"#d6dce4",
"#d9dce1",
31 "#dbdcde",
"#dedcdb",
"#e0dbd8",
"#e3d9d3",
"#e5d8d1",
"#e8d6cc",
"#ead5c9",
32 "#ecd3c5",
"#eed0c0",
"#efcebd",
"#f1ccb8",
"#f2cab5",
"#f3c7b1",
"#f4c5ad",
33 "#f5c1a9",
"#f6bfa6",
"#f7bca1",
"#f7b99e",
"#f7b599",
"#f7b396",
"#f7af91",
34 "#f7ac8e",
"#f7a889",
"#f6a385",
"#f5a081",
"#f59c7d",
"#f4987a",
"#f39475",
35 "#f29072",
"#f08b6e",
"#ef886b",
"#ed8366",
"#ec7f63",
"#e97a5f",
"#e8765c",
36 "#e57058",
"#e36c55",
"#e16751",
"#de614d",
"#dc5d4a",
"#d85646",
"#d65244",
37 "#d24b40",
"#d0473d",
"#cc403a",
"#ca3b37",
"#c53334",
"#c32e31",
"#be242e",
38 "#bb1b2c",
"#b70d28"};
44 if (
auto CI = dyn_cast<CallInst>(U)) {
45 if (CI->getCaller() == (&callerFunction)) {
56 uint64_t freqVal = BFI->getBlockFreq(&BB).getFrequency();
57 if (freqVal >= maxFreq)
LLVM Basic Block Representation.
BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...
iterator_range< user_iterator > users()
This is an optimization pass for GlobalISel generic memory operations.
static double log2(double V)
uint64_t getNumOfCalls(Function &callerFunction, Function &calledFunction)
static const unsigned heatSize
static const char heatPalette[heatSize][8]
std::string getHeatColor(uint64_t freq, uint64_t maxFreq)
uint64_t getMaxFreq(const Function &F, const BlockFrequencyInfo *BFI)
static uint64_t round(uint64_t Acc, uint64_t Input)