mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-07 14:33:15 +00:00
Update a bunch of stale comments that dated from when this folled the
very first (and worst) placement algorithm. These should now more accurately reflect the reality of the pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159185 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
952caee4f6
commit
c04f816afd
@ -63,17 +63,13 @@ namespace {
|
|||||||
///
|
///
|
||||||
/// This is the datastructure representing a chain of consecutive blocks that
|
/// This is the datastructure representing a chain of consecutive blocks that
|
||||||
/// are profitable to layout together in order to maximize fallthrough
|
/// are profitable to layout together in order to maximize fallthrough
|
||||||
/// probabilities. We also can use a block chain to represent a sequence of
|
/// probabilities and code locality. We also can use a block chain to represent
|
||||||
/// basic blocks which have some external (correctness) requirement for
|
/// a sequence of basic blocks which have some external (correctness)
|
||||||
/// sequential layout.
|
/// requirement for sequential layout.
|
||||||
///
|
///
|
||||||
/// Eventually, the block chains will form a directed graph over the function.
|
/// Chains can be built around a single basic block and can be merged to grow
|
||||||
/// We provide an SCC-supporting-iterator in order to quicky build and walk the
|
/// them. They participate in a block-to-chain mapping, which is updated
|
||||||
/// SCCs of block chains within a function.
|
/// automatically as chains are merged together.
|
||||||
///
|
|
||||||
/// The block chains also have support for calculating and caching probability
|
|
||||||
/// information related to the chain itself versus other chains. This is used
|
|
||||||
/// for ranking during the final layout of block chains.
|
|
||||||
class BlockChain {
|
class BlockChain {
|
||||||
/// \brief The sequence of blocks belonging to this chain.
|
/// \brief The sequence of blocks belonging to this chain.
|
||||||
///
|
///
|
||||||
@ -179,10 +175,11 @@ class MachineBlockPlacement : public MachineFunctionPass {
|
|||||||
|
|
||||||
/// \brief Allocator and owner of BlockChain structures.
|
/// \brief Allocator and owner of BlockChain structures.
|
||||||
///
|
///
|
||||||
/// We build BlockChains lazily by merging together high probability BB
|
/// We build BlockChains lazily while processing the loop structure of
|
||||||
/// sequences according to the "Algo2" in the paper mentioned at the top of
|
/// a function. To reduce malloc traffic, we allocate them using this
|
||||||
/// the file. To reduce malloc traffic, we allocate them using this slab-like
|
/// slab-like allocator, and destroy them after the pass completes. An
|
||||||
/// allocator, and destroy them after the pass completes.
|
/// important guarantee is that this allocator produces stable pointers to
|
||||||
|
/// the chains.
|
||||||
SpecificBumpPtrAllocator<BlockChain> ChainAllocator;
|
SpecificBumpPtrAllocator<BlockChain> ChainAllocator;
|
||||||
|
|
||||||
/// \brief Function wide BasicBlock to BlockChain mapping.
|
/// \brief Function wide BasicBlock to BlockChain mapping.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user