mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 08:17:40 +00:00
Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146986 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -77,6 +77,7 @@ class MachineBasicBlock : public ilist_node<MachineBasicBlock> {
|
||||
/// (disable optimization).
|
||||
std::vector<uint32_t> Weights;
|
||||
typedef std::vector<uint32_t>::iterator weight_iterator;
|
||||
typedef std::vector<uint32_t>::const_iterator const_weight_iterator;
|
||||
|
||||
/// LiveIns - Keep track of the physical registers that are livein of
|
||||
/// the basicblock.
|
||||
@@ -589,13 +590,14 @@ private:
|
||||
/// getWeightIterator - Return weight iterator corresponding to the I
|
||||
/// successor iterator.
|
||||
weight_iterator getWeightIterator(succ_iterator I);
|
||||
const_weight_iterator getWeightIterator(const_succ_iterator I) const;
|
||||
|
||||
friend class MachineBranchProbabilityInfo;
|
||||
|
||||
/// getSuccWeight - Return weight of the edge from this block to MBB. This
|
||||
/// method should NOT be called directly, but by using getEdgeWeight method
|
||||
/// from MachineBranchProbabilityInfo class.
|
||||
uint32_t getSuccWeight(MachineBasicBlock *succ);
|
||||
uint32_t getSuccWeight(const MachineBasicBlock *succ) const;
|
||||
|
||||
|
||||
// Methods used to maintain doubly linked list of blocks...
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
/// that we should not rely on the value itself, but only on the comparison to
|
||||
/// the other block frequencies. We do this to avoid using of floating points.
|
||||
///
|
||||
BlockFrequency getBlockFreq(MachineBasicBlock *MBB) const;
|
||||
BlockFrequency getBlockFreq(const MachineBasicBlock *MBB) const;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -49,12 +49,13 @@ public:
|
||||
|
||||
// Return edge weight. If we don't have any informations about it - return
|
||||
// DEFAULT_WEIGHT.
|
||||
uint32_t getEdgeWeight(MachineBasicBlock *Src, MachineBasicBlock *Dst) const;
|
||||
uint32_t getEdgeWeight(const MachineBasicBlock *Src,
|
||||
const MachineBasicBlock *Dst) const;
|
||||
|
||||
// Get sum of the block successors' weights, potentially scaling them to fit
|
||||
// within 32-bits. If scaling is required, sets Scale based on the necessary
|
||||
// adjustment. Any edge weights used with the sum should be divided by Scale.
|
||||
uint32_t getSumForBlock(MachineBasicBlock *MBB, uint32_t &Scale) const;
|
||||
uint32_t getSumForBlock(const MachineBasicBlock *MBB, uint32_t &Scale) const;
|
||||
|
||||
// A 'Hot' edge is an edge which probability is >= 80%.
|
||||
bool isEdgeHot(MachineBasicBlock *Src, MachineBasicBlock *Dst) const;
|
||||
|
||||
Reference in New Issue
Block a user