Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:Blocks

14 // a topological ordering of basic blocks) in the absence of a *strong* signal
17 // blocks adjacent to each other.
20 // at each stage walks through the basic blocks, trying to coalesce them into
22 // probabilities). Finally, it walks the blocks in topological order, and the
23 // first time it reaches a chain of basic blocks, it schedules them in the
60 static cl::opt<unsigned> AlignAllBlock("align-all-blocks",
62 "blocks in the function."),
86 cl::desc("Outline loop blocks from loop chain if (frequency of loop) / "
114 /// \brief A chain of blocks which will be laid out contiguously.
116 /// This is the datastructure representing a chain of consecutive blocks that
119 /// a sequence of basic blocks which have some external (correctness)
126 /// \brief The sequence of blocks belonging to this chain.
128 /// This is the sequence of blocks for a particular chain. These will be laid
130 SmallVector<MachineBasicBlock *, 4> Blocks;
136 /// basic blocks, and map them back to their associated chains using this
147 : Blocks(1, BB), BlockToChain(BlockToChain), LoopPredecessors(0) {
152 /// \brief Iterator over blocks within the chain.
155 /// \brief Beginning of blocks within the chain.
156 iterator begin() { return Blocks.begin(); }
158 /// \brief End of blocks within the chain.
159 iterator end() { return Blocks.end(); }
164 /// a contiguous sequence of basic blocks, updating the edge list, and
169 assert(!Blocks.empty());
174 Blocks.push_back(BB);
182 // Update the incoming blocks to point to this chain, and add them to the
185 Blocks.push_back(ChainBB);
186 assert(BlockToChain[ChainBB] == Chain && "Incoming blocks not in chain");
192 /// \brief Dump the blocks in this chain.
230 /// \brief A set of blocks that are unavoidably execute, i.e. they dominate
248 /// between basic blocks.
344 // Walk all the blocks in this chain, marking their successors as having
385 // Adjust edge probabilities by excluding edges pointing to blocks that is
507 /// blocks and select the most profitable one to place. The definition of
551 /// all of the basic blocks and form a chain due to unnatural loops in the CFG.
552 /// We walk through the function's blocks in order, starting from the
698 // a non-contiguous range of blocks which is Very Bad. So start with the
709 // blocks where rotating to exit with that block will reach an outer loop.
786 // Also, if we have exit blocks which lead to outer loops but didn't select
892 // Here we collect all exit blocks in the loop, and for each exit we find out
987 /// \brief Collect blocks in the given loop that are to be placed.
989 /// When profile data is available, exclude cold blocks from the returned set;
990 /// otherwise, collect all blocks in the loop.
995 // Filter cold blocks off from LoopBlockSet when profile data is available.
1063 // walk the blocks, and use a set to prevent visiting a particular chain
1120 dbgs() << "Loop contains blocks never placed into a chain!\n"
1137 // Also, merge any blocks which we cannot reason about and must preserve
1229 dbgs() << "Function contains blocks never placed into a chain!\n"
1235 // Splice the blocks into place.
1307 // the basic blocks and align the destination of each backedge. We don't rely
1324 // Don't align non-looping basic blocks. These are unlikely to execute
1395 // Align all of the blocks in the function to a specific alignment.