Update clang to r339409.
Change-Id: I800772d2d838223be1f6b40d490c4591b937fca2
diff --git a/linux-x64/clang/include/llvm/Analysis/RegionInfo.h b/linux-x64/clang/include/llvm/Analysis/RegionInfo.h
index 4bf64d1..27f6cc1 100644
--- a/linux-x64/clang/include/llvm/Analysis/RegionInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/RegionInfo.h
@@ -42,6 +42,7 @@
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/iterator_range.h"
+#include "llvm/Config/llvm-config.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/PassManager.h"
@@ -102,7 +103,7 @@
}
};
-/// @brief Marker class to iterate over the elements of a Region in flat mode.
+/// Marker class to iterate over the elements of a Region in flat mode.
///
/// The class is used to either iterate in Flat mode or by not using it to not
/// iterate in Flat mode. During a Flat mode iteration all Regions are entered
@@ -112,7 +113,7 @@
template <class GraphType>
class FlatIt {};
-/// @brief A RegionNode represents a subregion or a BasicBlock that is part of a
+/// A RegionNode represents a subregion or a BasicBlock that is part of a
/// Region.
template <class Tr>
class RegionNodeBase {
@@ -135,12 +136,12 @@
/// RegionNode.
PointerIntPair<BlockT *, 1, bool> entry;
- /// @brief The parent Region of this RegionNode.
+ /// The parent Region of this RegionNode.
/// @see getParent()
RegionT *parent;
protected:
- /// @brief Create a RegionNode.
+ /// Create a RegionNode.
///
/// @param Parent The parent of this RegionNode.
/// @param Entry The entry BasicBlock of the RegionNode. If this
@@ -156,7 +157,7 @@
RegionNodeBase(const RegionNodeBase &) = delete;
RegionNodeBase &operator=(const RegionNodeBase &) = delete;
- /// @brief Get the parent Region of this RegionNode.
+ /// Get the parent Region of this RegionNode.
///
/// The parent Region is the Region this RegionNode belongs to. If for
/// example a BasicBlock is element of two Regions, there exist two
@@ -166,7 +167,7 @@
/// @return Get the parent Region of this RegionNode.
inline RegionT *getParent() const { return parent; }
- /// @brief Get the entry BasicBlock of this RegionNode.
+ /// Get the entry BasicBlock of this RegionNode.
///
/// If this RegionNode represents a BasicBlock this is just the BasicBlock
/// itself, otherwise we return the entry BasicBlock of the Subregion
@@ -174,7 +175,7 @@
/// @return The entry BasicBlock of this RegionNode.
inline BlockT *getEntry() const { return entry.getPointer(); }
- /// @brief Get the content of this RegionNode.
+ /// Get the content of this RegionNode.
///
/// This can be either a BasicBlock or a subregion. Before calling getNodeAs()
/// check the type of the content with the isSubRegion() function call.
@@ -182,7 +183,7 @@
/// @return The content of this RegionNode.
template <class T> inline T *getNodeAs() const;
- /// @brief Is this RegionNode a subregion?
+ /// Is this RegionNode a subregion?
///
/// @return True if it contains a subregion. False if it contains a
/// BasicBlock.
@@ -190,7 +191,7 @@
};
//===----------------------------------------------------------------------===//
-/// @brief A single entry single exit Region.
+/// A single entry single exit Region.
///
/// A Region is a connected subgraph of a control flow graph that has exactly
/// two connections to the remaining graph. It can be used to analyze or
@@ -301,7 +302,7 @@
void verifyRegionNest() const;
public:
- /// @brief Create a new region.
+ /// Create a new region.
///
/// @param Entry The entry basic block of the region.
/// @param Exit The exit basic block of the region.
@@ -318,25 +319,25 @@
/// Delete the Region and all its subregions.
~RegionBase();
- /// @brief Get the entry BasicBlock of the Region.
+ /// Get the entry BasicBlock of the Region.
/// @return The entry BasicBlock of the region.
BlockT *getEntry() const {
return RegionNodeBase<Tr>::getEntry();
}
- /// @brief Replace the entry basic block of the region with the new basic
+ /// Replace the entry basic block of the region with the new basic
/// block.
///
/// @param BB The new entry basic block of the region.
void replaceEntry(BlockT *BB);
- /// @brief Replace the exit basic block of the region with the new basic
+ /// Replace the exit basic block of the region with the new basic
/// block.
///
/// @param BB The new exit basic block of the region.
void replaceExit(BlockT *BB);
- /// @brief Recursively replace the entry basic block of the region.
+ /// Recursively replace the entry basic block of the region.
///
/// This function replaces the entry basic block with a new basic block. It
/// also updates all child regions that have the same entry basic block as
@@ -345,7 +346,7 @@
/// @param NewEntry The new entry basic block.
void replaceEntryRecursive(BlockT *NewEntry);
- /// @brief Recursively replace the exit basic block of the region.
+ /// Recursively replace the exit basic block of the region.
///
/// This function replaces the exit basic block with a new basic block. It
/// also updates all child regions that have the same exit basic block as
@@ -354,38 +355,38 @@
/// @param NewExit The new exit basic block.
void replaceExitRecursive(BlockT *NewExit);
- /// @brief Get the exit BasicBlock of the Region.
+ /// Get the exit BasicBlock of the Region.
/// @return The exit BasicBlock of the Region, NULL if this is the TopLevel
/// Region.
BlockT *getExit() const { return exit; }
- /// @brief Get the parent of the Region.
+ /// Get the parent of the Region.
/// @return The parent of the Region or NULL if this is a top level
/// Region.
RegionT *getParent() const {
return RegionNodeBase<Tr>::getParent();
}
- /// @brief Get the RegionNode representing the current Region.
+ /// Get the RegionNode representing the current Region.
/// @return The RegionNode representing the current Region.
RegionNodeT *getNode() const {
return const_cast<RegionNodeT *>(
reinterpret_cast<const RegionNodeT *>(this));
}
- /// @brief Get the nesting level of this Region.
+ /// Get the nesting level of this Region.
///
/// An toplevel Region has depth 0.
///
/// @return The depth of the region.
unsigned getDepth() const;
- /// @brief Check if a Region is the TopLevel region.
+ /// Check if a Region is the TopLevel region.
///
/// The toplevel region represents the whole function.
bool isTopLevelRegion() const { return exit == nullptr; }
- /// @brief Return a new (non-canonical) region, that is obtained by joining
+ /// Return a new (non-canonical) region, that is obtained by joining
/// this region with its predecessors.
///
/// @return A region also starting at getEntry(), but reaching to the next
@@ -393,43 +394,43 @@
/// NULL if such a basic block does not exist.
RegionT *getExpandedRegion() const;
- /// @brief Return the first block of this region's single entry edge,
+ /// Return the first block of this region's single entry edge,
/// if existing.
///
/// @return The BasicBlock starting this region's single entry edge,
/// else NULL.
BlockT *getEnteringBlock() const;
- /// @brief Return the first block of this region's single exit edge,
+ /// Return the first block of this region's single exit edge,
/// if existing.
///
/// @return The BasicBlock starting this region's single exit edge,
/// else NULL.
BlockT *getExitingBlock() const;
- /// @brief Collect all blocks of this region's single exit edge, if existing.
+ /// Collect all blocks of this region's single exit edge, if existing.
///
/// @return True if this region contains all the predecessors of the exit.
bool getExitingBlocks(SmallVectorImpl<BlockT *> &Exitings) const;
- /// @brief Is this a simple region?
+ /// Is this a simple region?
///
/// A region is simple if it has exactly one exit and one entry edge.
///
/// @return True if the Region is simple.
bool isSimple() const;
- /// @brief Returns the name of the Region.
+ /// Returns the name of the Region.
/// @return The Name of the Region.
std::string getNameStr() const;
- /// @brief Return the RegionInfo object, that belongs to this Region.
+ /// Return the RegionInfo object, that belongs to this Region.
RegionInfoT *getRegionInfo() const { return RI; }
/// PrintStyle - Print region in difference ways.
enum PrintStyle { PrintNone, PrintBB, PrintRN };
- /// @brief Print the region.
+ /// Print the region.
///
/// @param OS The output stream the Region is printed to.
/// @param printTree Print also the tree of subregions.
@@ -438,17 +439,17 @@
PrintStyle Style = PrintNone) const;
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
- /// @brief Print the region to stderr.
+ /// Print the region to stderr.
void dump() const;
#endif
- /// @brief Check if the region contains a BasicBlock.
+ /// Check if the region contains a BasicBlock.
///
/// @param BB The BasicBlock that might be contained in this Region.
/// @return True if the block is contained in the region otherwise false.
bool contains(const BlockT *BB) const;
- /// @brief Check if the region contains another region.
+ /// Check if the region contains another region.
///
/// @param SubRegion The region that might be contained in this Region.
/// @return True if SubRegion is contained in the region otherwise false.
@@ -462,14 +463,14 @@
SubRegion->getExit() == getExit());
}
- /// @brief Check if the region contains an Instruction.
+ /// Check if the region contains an Instruction.
///
/// @param Inst The Instruction that might be contained in this region.
/// @return True if the Instruction is contained in the region otherwise
/// false.
bool contains(const InstT *Inst) const { return contains(Inst->getParent()); }
- /// @brief Check if the region contains a loop.
+ /// Check if the region contains a loop.
///
/// @param L The loop that might be contained in this region.
/// @return True if the loop is contained in the region otherwise false.
@@ -478,7 +479,7 @@
/// In that case true is returned.
bool contains(const LoopT *L) const;
- /// @brief Get the outermost loop in the region that contains a loop.
+ /// Get the outermost loop in the region that contains a loop.
///
/// Find for a Loop L the outermost loop OuterL that is a parent loop of L
/// and is itself contained in the region.
@@ -488,7 +489,7 @@
/// exist or if the region describes the whole function.
LoopT *outermostLoopInRegion(LoopT *L) const;
- /// @brief Get the outermost loop in the region that contains a basic block.
+ /// Get the outermost loop in the region that contains a basic block.
///
/// Find for a basic block BB the outermost loop L that contains BB and is
/// itself contained in the region.
@@ -499,13 +500,13 @@
/// exist or if the region describes the whole function.
LoopT *outermostLoopInRegion(LoopInfoT *LI, BlockT *BB) const;
- /// @brief Get the subregion that starts at a BasicBlock
+ /// Get the subregion that starts at a BasicBlock
///
/// @param BB The BasicBlock the subregion should start.
/// @return The Subregion if available, otherwise NULL.
RegionT *getSubRegionNode(BlockT *BB) const;
- /// @brief Get the RegionNode for a BasicBlock
+ /// Get the RegionNode for a BasicBlock
///
/// @param BB The BasicBlock at which the RegionNode should start.
/// @return If available, the RegionNode that represents the subregion
@@ -513,38 +514,38 @@
/// representing BB.
RegionNodeT *getNode(BlockT *BB) const;
- /// @brief Get the BasicBlock RegionNode for a BasicBlock
+ /// Get the BasicBlock RegionNode for a BasicBlock
///
/// @param BB The BasicBlock for which the RegionNode is requested.
/// @return The RegionNode representing the BB.
RegionNodeT *getBBNode(BlockT *BB) const;
- /// @brief Add a new subregion to this Region.
+ /// Add a new subregion to this Region.
///
/// @param SubRegion The new subregion that will be added.
/// @param moveChildren Move the children of this region, that are also
/// contained in SubRegion into SubRegion.
void addSubRegion(RegionT *SubRegion, bool moveChildren = false);
- /// @brief Remove a subregion from this Region.
+ /// Remove a subregion from this Region.
///
/// The subregion is not deleted, as it will probably be inserted into another
/// region.
/// @param SubRegion The SubRegion that will be removed.
RegionT *removeSubRegion(RegionT *SubRegion);
- /// @brief Move all direct child nodes of this Region to another Region.
+ /// Move all direct child nodes of this Region to another Region.
///
/// @param To The Region the child nodes will be transferred to.
void transferChildrenTo(RegionT *To);
- /// @brief Verify if the region is a correct region.
+ /// Verify if the region is a correct region.
///
/// Check if this is a correctly build Region. This is an expensive check, as
/// the complete CFG of the Region will be walked.
void verifyRegion() const;
- /// @brief Clear the cache for BB RegionNodes.
+ /// Clear the cache for BB RegionNodes.
///
/// After calling this function the BasicBlock RegionNodes will be stored at
/// different memory locations. RegionNodes obtained before this function is
@@ -620,12 +621,12 @@
using block_range = iterator_range<block_iterator>;
using const_block_range = iterator_range<const_block_iterator>;
- /// @brief Returns a range view of the basic blocks in the region.
+ /// Returns a range view of the basic blocks in the region.
inline block_range blocks() {
return block_range(block_begin(), block_end());
}
- /// @brief Returns a range view of the basic blocks in the region.
+ /// Returns a range view of the basic blocks in the region.
///
/// This is the 'const' version of the range view.
inline const_block_range blocks() const {
@@ -667,7 +668,7 @@
inline raw_ostream &operator<<(raw_ostream &OS, const RegionNodeBase<Tr> &Node);
//===----------------------------------------------------------------------===//
-/// @brief Analysis that detects all canonical Regions.
+/// Analysis that detects all canonical Regions.
///
/// The RegionInfo pass detects all canonical regions in a function. The Regions
/// are connected using the parent relation. This builds a Program Structure
@@ -725,7 +726,7 @@
BBtoRegionMap BBtoRegion;
protected:
- /// \brief Update refences to a RegionInfoT held by the RegionT managed here
+ /// Update refences to a RegionInfoT held by the RegionT managed here
///
/// This is a post-move helper. Regions hold references to the owning
/// RegionInfo object. After a move these need to be fixed.
@@ -739,7 +740,7 @@
}
private:
- /// \brief Wipe this region tree's state without releasing any resources.
+ /// Wipe this region tree's state without releasing any resources.
///
/// This is essentially a post-move helper only. It leaves the object in an
/// assignable and destroyable state, but otherwise invalid.
@@ -811,40 +812,40 @@
void releaseMemory();
- /// @brief Get the smallest region that contains a BasicBlock.
+ /// Get the smallest region that contains a BasicBlock.
///
/// @param BB The basic block.
/// @return The smallest region, that contains BB or NULL, if there is no
/// region containing BB.
RegionT *getRegionFor(BlockT *BB) const;
- /// @brief Set the smallest region that surrounds a basic block.
+ /// Set the smallest region that surrounds a basic block.
///
/// @param BB The basic block surrounded by a region.
/// @param R The smallest region that surrounds BB.
void setRegionFor(BlockT *BB, RegionT *R);
- /// @brief A shortcut for getRegionFor().
+ /// A shortcut for getRegionFor().
///
/// @param BB The basic block.
/// @return The smallest region, that contains BB or NULL, if there is no
/// region containing BB.
RegionT *operator[](BlockT *BB) const;
- /// @brief Return the exit of the maximal refined region, that starts at a
+ /// Return the exit of the maximal refined region, that starts at a
/// BasicBlock.
///
/// @param BB The BasicBlock the refined region starts.
BlockT *getMaxRegionExit(BlockT *BB) const;
- /// @brief Find the smallest region that contains two regions.
+ /// Find the smallest region that contains two regions.
///
/// @param A The first region.
/// @param B The second region.
/// @return The smallest region containing A and B.
RegionT *getCommonRegion(RegionT *A, RegionT *B) const;
- /// @brief Find the smallest region that contains two basic blocks.
+ /// Find the smallest region that contains two basic blocks.
///
/// @param A The first basic block.
/// @param B The second basic block.
@@ -853,13 +854,13 @@
return getCommonRegion(getRegionFor(A), getRegionFor(B));
}
- /// @brief Find the smallest region that contains a set of regions.
+ /// Find the smallest region that contains a set of regions.
///
/// @param Regions A vector of regions.
/// @return The smallest region that contains all regions in Regions.
RegionT *getCommonRegion(SmallVectorImpl<RegionT *> &Regions) const;
- /// @brief Find the smallest region that contains a set of basic blocks.
+ /// Find the smallest region that contains a set of basic blocks.
///
/// @param BBs A vector of basic blocks.
/// @return The smallest region that contains all basic blocks in BBS.
@@ -867,7 +868,7 @@
RegionT *getTopLevelRegion() const { return TopLevelRegion; }
- /// @brief Clear the Node Cache for all Regions.
+ /// Clear the Node Cache for all Regions.
///
/// @see Region::clearNodeCache()
void clearNodeCache() {
@@ -930,12 +931,12 @@
DominanceFrontier *DF);
#ifndef NDEBUG
- /// @brief Opens a viewer to show the GraphViz visualization of the regions.
+ /// Opens a viewer to show the GraphViz visualization of the regions.
///
/// Useful during debugging as an alternative to dump().
void view();
- /// @brief Opens a viewer to show the GraphViz visualization of this region
+ /// Opens a viewer to show the GraphViz visualization of this region
/// without instructions in the BasicBlocks.
///
/// Useful during debugging as an alternative to dump().
@@ -967,7 +968,7 @@
//@}
};
-/// \brief Analysis pass that exposes the \c RegionInfo for a function.
+/// Analysis pass that exposes the \c RegionInfo for a function.
class RegionInfoAnalysis : public AnalysisInfoMixin<RegionInfoAnalysis> {
friend AnalysisInfoMixin<RegionInfoAnalysis>;
@@ -979,7 +980,7 @@
RegionInfo run(Function &F, FunctionAnalysisManager &AM);
};
-/// \brief Printer pass for the \c RegionInfo.
+/// Printer pass for the \c RegionInfo.
class RegionInfoPrinterPass : public PassInfoMixin<RegionInfoPrinterPass> {
raw_ostream &OS;
@@ -989,7 +990,7 @@
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
};
-/// \brief Verifier pass for the \c RegionInfo.
+/// Verifier pass for the \c RegionInfo.
struct RegionInfoVerifierPass : PassInfoMixin<RegionInfoVerifierPass> {
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
};