Struct ValueRecord

Struct Documentation

struct ValueRecord

Public Members

std::string id
std::string name

the short name: the root’s label (with “/<term index>” when the root has several terms) and the node ordinal of the id, “R12#3”, or the id itself for a root’s partial sum, “R12+1”

std::string expr

“<name>[<slices>] = <operands>”: the value in the form it is produced in, then a leaf’s tensor label or the two operands as the value reads them, each a leaf’s tensor label or an intermediate’s name, joined by “ + “ for a Sum, “ ^ “ for a Power (operand ^ exponent), else “ * “; an Adjoint reads its one operand followed by “⁺”

std::string hash
std::string key
bool leaf = false
std::vector<std::string> result_modes
std::vector<std::string> home_modes
std::vector<std::string> enclosing_modes
std::vector<std::string> divergent_modes
std::size_t home_block = 0
int home_depth = 0
bool persistent = false
std::size_t first_use = 0
std::size_t last_use = 0
std::size_t modeled_footprint = 0

bytes the cost model prices the value at, home-relative (a per-batch slab inside a loop; see peak_profile’s cell_footprint); 0 when the recorder had no cost model

std::size_t modeled_size = 0

bytes of the complete value under the same model (every mode at full extent); 0 when unpriced

std::vector<std::string> build_site
std::vector<std::string> home_floor
std::vector<std::string> forced_split_axes
std::vector<PerAxisRecord> per_axis
std::vector<OccurrenceRecord> occurrences
std::vector<std::string> siblings