14#ifndef LLVM_TRANSFORMS_UTILS_CODELAYOUT_H
15#define LLVM_TRANSFORMS_UTILS_CODELAYOUT_H
23using EdgeT = std::pair<uint64_t, uint64_t>;
39 const std::vector<uint64_t> &NodeCounts,
40 const std::vector<EdgeCountT> &EdgeCounts);
47 const std::vector<uint64_t> &NodeSizes,
48 const std::vector<uint64_t> &NodeCounts,
49 const std::vector<EdgeCountT> &EdgeCounts);
53 const std::vector<uint64_t> &NodeCounts,
54 const std::vector<EdgeCountT> &EdgeCounts);
This file defines the DenseMap class.
This is an optimization pass for GlobalISel generic memory operations.
std::pair< uint64_t, uint64_t > EdgeT
std::pair< EdgeT, uint64_t > EdgeCountT
std::vector< uint64_t > applyExtTspLayout(const std::vector< uint64_t > &NodeSizes, const std::vector< uint64_t > &NodeCounts, const std::vector< EdgeCountT > &EdgeCounts)
Find a layout of nodes (basic blocks) of a given CFG optimizing jump locality and thus processor I-ca...
double calcExtTspScore(const std::vector< uint64_t > &Order, const std::vector< uint64_t > &NodeSizes, const std::vector< uint64_t > &NodeCounts, const std::vector< EdgeCountT > &EdgeCounts)
Estimate the "quality" of a given node order in CFG.