diff --git a/include/llvm/Analysis/Interval.h b/include/llvm/Analysis/Interval.h index 448bcbc803a..91e1da6a016 100644 --- a/include/llvm/Analysis/Interval.h +++ b/include/llvm/Analysis/Interval.h @@ -30,14 +30,14 @@ class BasicBlock; //===----------------------------------------------------------------------===// // -// Interval Class - An Interval is a set of nodes defined such that every node -// in the interval has all of its predecessors in the interval (except for the -// header) -// +/// Interval Class - An Interval is a set of nodes defined such that every node +/// in the interval has all of its predecessors in the interval (except for the +/// header) +/// class Interval { - // HeaderNode - The header BasicBlock, which dominates all BasicBlocks in this - // interval. Also, any loops in this interval must go through the HeaderNode. - // + /// HeaderNode - The header BasicBlock, which dominates all BasicBlocks in this + /// interval. Also, any loops in this interval must go through the HeaderNode. + /// BasicBlock *HeaderNode; public: typedef std::vector::iterator succ_iterator; @@ -53,22 +53,22 @@ public: inline BasicBlock *getHeaderNode() const { return HeaderNode; } - // Nodes - The basic blocks in this interval. - // + /// Nodes - The basic blocks in this interval. + /// std::vector Nodes; - // Successors - List of BasicBlocks that are reachable directly from nodes in - // this interval, but are not in the interval themselves. - // These nodes necessarily must be header nodes for other intervals. - // + /// Successors - List of BasicBlocks that are reachable directly from nodes in + /// this interval, but are not in the interval themselves. + /// These nodes necessarily must be header nodes for other intervals. + /// std::vector Successors; - // Predecessors - List of BasicBlocks that have this Interval's header block - // as one of their successors. - // + /// Predecessors - List of BasicBlocks that have this Interval's header block + /// as one of their successors. + /// std::vector Predecessors; - // contains - Find out if a basic block is in this interval + /// contains - Find out if a basic block is in this interval inline bool contains(BasicBlock *BB) const { for (unsigned i = 0; i < Nodes.size(); ++i) if (Nodes[i] == BB) return true; @@ -77,7 +77,7 @@ public: //return find(Nodes.begin(), Nodes.end(), BB) != Nodes.end(); } - // isSuccessor - find out if a basic block is a successor of this Interval + /// isSuccessor - find out if a basic block is a successor of this Interval inline bool isSuccessor(BasicBlock *BB) const { for (unsigned i = 0; i < Successors.size(); ++i) if (Successors[i] == BB) return true; @@ -86,24 +86,24 @@ public: //return find(Successors.begin(), Successors.end(), BB) != Successors.end(); } - // Equality operator. It is only valid to compare two intervals from the same - // partition, because of this, all we have to check is the header node for - // equality. - // + /// Equality operator. It is only valid to compare two intervals from the same + /// partition, because of this, all we have to check is the header node for + /// equality. + /// inline bool operator==(const Interval &I) const { return HeaderNode == I.HeaderNode; } - // isLoop - Find out if there is a back edge in this interval... + /// isLoop - Find out if there is a back edge in this interval... bool isLoop() const; - // print - Show contents in human readable format... + /// print - Show contents in human readable format... void print(std::ostream &O) const; }; -// succ_begin/succ_end - define methods so that Intervals may be used -// just like BasicBlocks can with the succ_* functions, and *::succ_iterator. -// +/// succ_begin/succ_end - define methods so that Intervals may be used +/// just like BasicBlocks can with the succ_* functions, and *::succ_iterator. +/// inline Interval::succ_iterator succ_begin(Interval *I) { return I->Successors.begin(); } @@ -111,9 +111,9 @@ inline Interval::succ_iterator succ_end(Interval *I) { return I->Successors.end(); } -// pred_begin/pred_end - define methods so that Intervals may be used -// just like BasicBlocks can with the pred_* functions, and *::pred_iterator. -// +/// pred_begin/pred_end - define methods so that Intervals may be used +/// just like BasicBlocks can with the pred_* functions, and *::pred_iterator. +/// inline Interval::pred_iterator pred_begin(Interval *I) { return I->Predecessors.begin(); } @@ -127,7 +127,7 @@ template <> struct GraphTraits { static NodeType *getEntryNode(Interval *I) { return I; } - // nodes_iterator/begin/end - Allow iteration over all nodes in the graph + /// nodes_iterator/begin/end - Allow iteration over all nodes in the graph static inline ChildIteratorType child_begin(NodeType *N) { return succ_begin(N); } diff --git a/lib/Transforms/Utils/BasicBlockUtils.cpp b/lib/Transforms/Utils/BasicBlockUtils.cpp index bf1e3612b26..efaf22d459a 100644 --- a/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -20,9 +20,9 @@ #include using namespace llvm; -// ReplaceInstWithValue - Replace all uses of an instruction (specified by BI) -// with a value, then remove and delete the original instruction. -// +/// ReplaceInstWithValue - Replace all uses of an instruction (specified by BI) +/// with a value, then remove and delete the original instruction. +/// void llvm::ReplaceInstWithValue(BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Value *V) { Instruction &I = *BI; @@ -40,10 +40,10 @@ void llvm::ReplaceInstWithValue(BasicBlock::InstListType &BIL, } -// ReplaceInstWithInst - Replace the instruction specified by BI with the -// instruction specified by I. The original instruction is deleted and BI is -// updated to point to the new instruction. -// +/// ReplaceInstWithInst - Replace the instruction specified by BI with the +/// instruction specified by I. The original instruction is deleted and BI is +/// updated to point to the new instruction. +/// void llvm::ReplaceInstWithInst(BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Instruction *I) { assert(I->getParent() == 0 && @@ -59,21 +59,21 @@ void llvm::ReplaceInstWithInst(BasicBlock::InstListType &BIL, BI = New; } -// ReplaceInstWithInst - Replace the instruction specified by From with the -// instruction specified by To. -// +/// ReplaceInstWithInst - Replace the instruction specified by From with the +/// instruction specified by To. +/// void llvm::ReplaceInstWithInst(Instruction *From, Instruction *To) { BasicBlock::iterator BI(From); ReplaceInstWithInst(From->getParent()->getInstList(), BI, To); } -// RemoveSuccessor - Change the specified terminator instruction such that its -// successor #SuccNum no longer exists. Because this reduces the outgoing -// degree of the current basic block, the actual terminator instruction itself -// may have to be changed. In the case where the last successor of the block is -// deleted, a return instruction is inserted in its place which can cause a -// surprising change in program behavior if it is not expected. -// +/// RemoveSuccessor - Change the specified terminator instruction such that its +/// successor #SuccNum no longer exists. Because this reduces the outgoing +/// degree of the current basic block, the actual terminator instruction itself +/// may have to be changed. In the case where the last successor of the block is +/// deleted, a return instruction is inserted in its place which can cause a +/// surprising change in program behavior if it is not expected. +/// void llvm::RemoveSuccessor(TerminatorInst *TI, unsigned SuccNum) { assert(SuccNum < TI->getNumSuccessors() && "Trying to remove a nonexistant successor!"); diff --git a/lib/VMCore/BasicBlock.cpp b/lib/VMCore/BasicBlock.cpp index 95eab23edff..65ba49a837f 100644 --- a/lib/VMCore/BasicBlock.cpp +++ b/lib/VMCore/BasicBlock.cpp @@ -195,17 +195,17 @@ void BasicBlock::removePredecessor(BasicBlock *Pred, } -// splitBasicBlock - This splits a basic block into two at the specified -// instruction. Note that all instructions BEFORE the specified iterator stay -// as part of the original basic block, an unconditional branch is added to -// the new BB, and the rest of the instructions in the BB are moved to the new -// BB, including the old terminator. This invalidates the iterator. -// -// Note that this only works on well formed basic blocks (must have a -// terminator), and 'I' must not be the end of instruction list (which would -// cause a degenerate basic block to be formed, having a terminator inside of -// the basic block). -// +/// splitBasicBlock - This splits a basic block into two at the specified +/// instruction. Note that all instructions BEFORE the specified iterator stay +/// as part of the original basic block, an unconditional branch is added to +/// the new BB, and the rest of the instructions in the BB are moved to the new +/// BB, including the old terminator. This invalidates the iterator. +/// +/// Note that this only works on well formed basic blocks (must have a +/// terminator), and 'I' must not be the end of instruction list (which would +/// cause a degenerate basic block to be formed, having a terminator inside of +/// the basic block). +/// BasicBlock *BasicBlock::splitBasicBlock(iterator I, const std::string &BBName) { assert(getTerminator() && "Can't use splitBasicBlock on degenerate BB!"); assert(I != InstList.end() &&