LLVM: llvm::SpillPlacement::Node Struct Reference (original) (raw)

Node - Each edge bundle corresponds to a Hopfield node. More...

Public Member Functions
bool preferReg () const
preferReg - Return true when this node prefers to be in a register.
bool mustSpill () const
mustSpill - Return True if this node is so biased that it must spill.
void clear (BlockFrequency Threshold)
clear - Reset per-query data, but preserve frequencies that only depend on the CFG.
void addLink (unsigned b, BlockFrequency w)
addLink - Add a link to bundle b with weight w.
void addBias (BlockFrequency freq, BorderConstraint direction)
addBias - Bias this node.
bool update (const Node nodes[], BlockFrequency Threshold)
update - Recompute Value from Bias and Links.
void getDissentingNeighbors (SparseSet< unsigned > &List, const Node nodes[]) const
Public Attributes
BlockFrequency BiasN
BiasN - Sum of blocks that prefer a spill.
BlockFrequency BiasP
BiasP - Sum of blocks that prefer a register.
int Value
Value - Output value of this node computed from the Bias and links.
LinkVector Links
Links - (Weight, BundleNo) for all transparent blocks connecting to other bundles.
BlockFrequency SumLinkWeights
SumLinkWeights - Cached sum of the weights of all links + ThresHold.

Node - Each edge bundle corresponds to a Hopfield node.

The node contains precomputed frequency data that only depends on the CFG, but Bias and Links are computed each time placeSpills is called.

The node Value is positive when the variable should be in a register. The value can change when linked nodes change, but convergence is very fast because all weights are positive.

Definition at line 72 of file SpillPlacement.cpp.

LinkVector

addBias()

clear()

void llvm::SpillPlacement::Node::clear ( BlockFrequency Threshold) inline

getDissentingNeighbors()

mustSpill()

bool llvm::SpillPlacement::Node::mustSpill ( ) const inline

preferReg()

bool llvm::SpillPlacement::Node::preferReg ( ) const inline

update()

BiasN

BiasP

LinkVector llvm::SpillPlacement::Node::Links

SumLinkWeights

Value

int llvm::SpillPlacement::Node::Value


The documentation for this struct was generated from the following file: