Jlm
Classes | Namespaces | Functions
cfg-structure.hpp File Reference
#include <jlm/util/HashSet.hpp>
#include <jlm/util/iterator_range.hpp>
#include <jlm/util/IteratorWrapper.hpp>
#include <memory>
#include <unordered_set>
#include <vector>
Include dependency graph for cfg-structure.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  jlm::llvm::StronglyConnectedComponent
 Strongly Connected Component. More...
 
class  jlm::llvm::StronglyConnectedComponentStructure
 Strongly Connected Component Structure. More...
 

Namespaces

 jlm
 
 jlm::llvm
 Global memory state passed between functions.
 

Functions

bool jlm::llvm::is_valid (const ControlFlowGraph &cfg)
 
bool jlm::llvm::is_closed (const ControlFlowGraph &cfg)
 
bool jlm::llvm::is_linear (const ControlFlowGraph &cfg)
 
std::vector< StronglyConnectedComponent > jlm::llvm::find_sccs (const ControlFlowGraph &cfg)
 
std::vector< StronglyConnectedComponent > jlm::llvm::find_sccs (ControlFlowGraphNode *entry, ControlFlowGraphNode *exit)
 
static bool jlm::llvm::is_acyclic (const ControlFlowGraph &cfg)
 
bool jlm::llvm::is_structured (const ControlFlowGraph &cfg)
 
bool jlm::llvm::is_proper_structured (const ControlFlowGraph &cfg)
 
bool jlm::llvm::is_reducible (const ControlFlowGraph &cfg)
 
void jlm::llvm::straighten (ControlFlowGraph &cfg)
 
void jlm::llvm::purge (ControlFlowGraph &cfg)
 Remove all basic blocks without instructions. More...
 
void jlm::llvm::prune (ControlFlowGraph &cfg)