54 #include "config_HAVE_HOST_PROFILING_BUILT.hpp" 132 std::vector<std::list<vertex>>& level_vertices_rel);
136 unsigned int& max_dfs);
168 const std::list<LoopConstRef>&
GetList()
const;
180 const LoopConstRef
CGetLoop(
unsigned int id)
const;
193 void WriteDot(
const std::string& file_name
194 #
if HAVE_HOST_PROFILING_BUILT
196 const ProfilingInformationConstRef profiling_information = ProfilingInformationConstRef()
void BuildZeroLoop()
Creates Loop zero data structure.
Class specification of the graph structures.
size_t NumLoops() const
Returns the number of loops.
REF_FORWARD_DECL(BBGraph)
redefinition of map to manage ordered/unordered structures
void computeDepth(const LoopConstRef loop)
Sets depth for each loop in the forest starting from loop.
Class used to describe a particular graph with basic blocks as nodes.
absl::flat_hash_map< T, U, Hash, Eq, Alloc > CustomUnorderedMap
CONSTREF_FORWARD_DECL(Loop)
bool is_edge_in_list(CustomUnorderedSet< vertex_pair > &l, vertex source, vertex target)
std::list< LoopRef > modifiable_loops_list
List of found loops.
bool stack_contains(std::list< vertex > stack, vertex v)
redefinition of set to manage ordered/unordered structures
int debug_level
Debug level.
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
void tarjan_scc(const BBGraphRef djg, vertex v, CustomUnorderedMap< vertex, unsigned int > &dfs_order, CustomUnorderedMap< vertex, unsigned int > &lowlink, std::list< vertex > &s, CustomOrderedSet< vertex > &u, unsigned int &max_dfs)
Template definition of refcount.
const std::list< LoopConstRef > & GetList() const
Returns the list of loops (const)
const std::list< LoopRef > & GetModifiableList() const
Return the list of loops.
const LoopConstRef CGetLoop(unsigned int id) const
Returns a loop given the id.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
const ParameterConstRef Param
class containing all the parameters
void DetectLoops()
Computes the loops of the control flow graph.
void DetectReducibleLoop(const BBGraphRef djg, CustomOrderedSet< vertex > &visited, LoopRef loop, vertex node, vertex header)
Reducible loop construction.
const LoopRef GetLoop(unsigned int id)
Returns a loop given the id.
std::pair< vertex, vertex > vertex_pair
std::list< LoopConstRef > const_loops_list
void WriteDot(const std::string &file_name) const
Write dot files representing the loop forest.
CustomUnorderedMap< vertex, LoopRef > block_to_loop
Maps between basic block and loop to which it belongs.
void DetectIrreducibleLoop(const BBGraphRef djg, unsigned int min_level, unsigned int max_level, std::vector< std::list< vertex >> &level_vertices_rel)
const FunctionBehaviorRef FB
The function behavior.