Go to the documentation of this file.
21 #define DEBUG_TYPE "llvm-mca"
24 if (Denominator ==
RHS.Denominator)
25 Numerator +=
RHS.Numerator;
30 unsigned LCM = (Denominator *
RHS.Denominator) / GCD;
31 unsigned LHSNumerator = Numerator * (LCM / Denominator);
32 unsigned RHSNumerator =
RHS.Numerator * (LCM /
RHS.Denominator);
33 Numerator = LHSNumerator + RHSNumerator;
41 unsigned ProcResourceID = 0;
44 "Invalid number of elements");
53 Masks[
I] = 1ULL << ProcResourceID;
62 Masks[
I] = 1ULL << ProcResourceID;
63 for (
unsigned U = 0; U < Desc.
NumUnits; ++U) {
65 Masks[
I] |= OtherMask;
77 << Desc.
Name <<
'\n');
88 double Max =
static_cast<double>(NumMicroOps) / DispatchWidth;
This is an optimization pass for GlobalISel generic memory operations.
FormattedNumber format_decimal(int64_t N, unsigned Width)
format_decimal - Output N as a right justified, fixed-width decimal.
uint64_t GreatestCommonDivisor64(uint64_t A, uint64_t B)
unsigned getNumProcResourceKinds() const
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
double computeBlockRThroughput(const MCSchedModel &SM, unsigned DispatchWidth, unsigned NumMicroOps, ArrayRef< unsigned > ProcResourceUsage)
Compute the reciprocal block throughput from a set of processor resource cycles.
MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memo...
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
ResourceCycles & operator+=(const ResourceCycles &RHS)
Define a kind of processor resource that will be modeled by the scheduler.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
const unsigned * SubUnitsIdxBegin
const MCProcResourceDesc * getProcResource(unsigned ProcResourceIdx) const
Machine model for scheduling, bundling, and heuristics.
size_t size() const
size - Get the array size.
Align max(MaybeAlign Lhs, Align Rhs)
This class represents the number of cycles per resource (fractions of cycles).
void computeProcResourceMasks(const MCSchedModel &SM, MutableArrayRef< uint64_t > Masks)
Populates vector Masks with processor resource masks.
FormattedNumber format_hex(uint64_t N, unsigned Width, bool Upper=false)
format_hex - Output N as a fixed width hexadecimal.