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()
◆ addLink()
◆ 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
◆ Links
LinkVector llvm::SpillPlacement::Node::Links
◆ SumLinkWeights
◆ Value
int llvm::SpillPlacement::Node::Value
The documentation for this struct was generated from the following file:
- lib/CodeGen/SpillPlacement.cpp