|
| static void | jlm::llvm::strongconnect (ControlFlowGraphNode *node, ControlFlowGraphNode *exit, std::unordered_map< ControlFlowGraphNode *, std::pair< size_t, size_t >> &map, std::vector< ControlFlowGraphNode * > &node_stack, size_t &index, std::vector< StronglyConnectedComponent > &sccs) |
| |
| std::vector< StronglyConnectedComponent > | jlm::llvm::find_sccs (const ControlFlowGraph &cfg) |
| |
| std::vector< StronglyConnectedComponent > | jlm::llvm::find_sccs (ControlFlowGraphNode *entry, ControlFlowGraphNode *exit) |
| |
| static std::unique_ptr< ControlFlowGraph > | jlm::llvm::copy_structural (const ControlFlowGraph &in) |
| |
| static bool | jlm::llvm::is_loop (const jlm::llvm::ControlFlowGraphNode *node) noexcept |
| |
| static bool | jlm::llvm::is_linear_reduction (const jlm::llvm::ControlFlowGraphNode *node) noexcept |
| |
| static jlm::llvm::ControlFlowGraphNode * | jlm::llvm::find_join (const jlm::llvm::ControlFlowGraphNode *split) noexcept |
| |
| static bool | jlm::llvm::is_branch (const jlm::llvm::ControlFlowGraphNode *split) noexcept |
| |
| static bool | jlm::llvm::is_proper_branch (const jlm::llvm::ControlFlowGraphNode *split) noexcept |
| |
| static bool | jlm::llvm::is_T1 (const jlm::llvm::ControlFlowGraphNode *node) noexcept |
| |
| static bool | jlm::llvm::is_T2 (const jlm::llvm::ControlFlowGraphNode *node) noexcept |
| |
| static void | jlm::llvm::reduce_loop (jlm::llvm::ControlFlowGraphNode *node, std::unordered_set< jlm::llvm::ControlFlowGraphNode * > &to_visit) |
| |
| static void | jlm::llvm::reduce_linear (jlm::llvm::ControlFlowGraphNode *entry, std::unordered_set< jlm::llvm::ControlFlowGraphNode * > &to_visit) |
| |
| static void | jlm::llvm::reduce_branch (jlm::llvm::ControlFlowGraphNode *split, std::unordered_set< jlm::llvm::ControlFlowGraphNode * > &to_visit) |
| |
| static void | jlm::llvm::reduce_proper_branch (jlm::llvm::ControlFlowGraphNode *split, std::unordered_set< jlm::llvm::ControlFlowGraphNode * > &to_visit) |
| |
| static void | jlm::llvm::reduce_T1 (jlm::llvm::ControlFlowGraphNode *node) |
| |
| static void | jlm::llvm::reduce_T2 (jlm::llvm::ControlFlowGraphNode *node, std::unordered_set< jlm::llvm::ControlFlowGraphNode * > &to_visit) |
| |
| static bool | jlm::llvm::reduce_proper_structured (jlm::llvm::ControlFlowGraphNode *node, std::unordered_set< jlm::llvm::ControlFlowGraphNode * > &to_visit) |
| |
| static bool | jlm::llvm::reduce_structured (jlm::llvm::ControlFlowGraphNode *node, std::unordered_set< jlm::llvm::ControlFlowGraphNode * > &to_visit) |
| |
| static bool | jlm::llvm::reduce_reducible (jlm::llvm::ControlFlowGraphNode *node, std::unordered_set< jlm::llvm::ControlFlowGraphNode * > &to_visit) |
| |
| static bool | jlm::llvm::has_valid_phis (const BasicBlock &bb) |
| |
| static bool | jlm::llvm::is_valid_basic_block (const BasicBlock &bb) |
| |
| static bool | jlm::llvm::has_valid_entry (const ControlFlowGraph &cfg) |
| |
| static bool | jlm::llvm::has_valid_exit (const ControlFlowGraph &cfg) |
| |
| bool | jlm::llvm::is_valid (const ControlFlowGraph &cfg) |
| |
| bool | jlm::llvm::is_closed (const ControlFlowGraph &cfg) |
| |
| bool | jlm::llvm::is_linear (const ControlFlowGraph &cfg) |
| |
| static bool | jlm::llvm::reduce (const ControlFlowGraph &cfg, const std::function< bool(llvm::ControlFlowGraphNode *, std::unordered_set< llvm::ControlFlowGraphNode * > &)> &f) |
| |
| 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...
|
| |
| static std::unordered_set< const ControlFlowGraphNode * > | jlm::llvm::compute_livenodes (const ControlFlowGraph &cfg) |
| |
| static std::unordered_set< ControlFlowGraphNode * > | jlm::llvm::compute_deadnodes (ControlFlowGraph &cfg) |
| |
| static std::unordered_set< BasicBlock * > | jlm::llvm::compute_live_sinks (const std::unordered_set< ControlFlowGraphNode * > &deadnodes) |
| |
| static void | jlm::llvm::update_phi_operands (llvm::ThreeAddressCode &phitac, const std::unordered_set< ControlFlowGraphNode * > &deadnodes) |
| |
| static void | jlm::llvm::update_phi_operands (const std::unordered_set< BasicBlock * > &sinks, const std::unordered_set< ControlFlowGraphNode * > &deadnodes) |
| |
| static void | jlm::llvm::remove_deadnodes (const std::unordered_set< ControlFlowGraphNode * > &deadnodes) |
| |
| void | jlm::llvm::prune (ControlFlowGraph &cfg) |
| |