refactor(cfg): add type alias for Graph (#6322)

Pure refactor. No logic changes
This commit is contained in:
DonIsaac 2024-10-07 15:28:30 +00:00
parent 95ca01ccc1
commit a1e0d30f20
2 changed files with 7 additions and 8 deletions

View file

@ -16,7 +16,7 @@ struct ErrorHarness(ErrorEdgeKind, BasicBlockId);
#[derive(Debug, Default)]
pub struct ControlFlowGraphBuilder<'a> {
pub graph: Graph<usize, EdgeType>,
pub graph: Graph,
pub basic_blocks: Vec<BasicBlock>,
pub current_node_ix: BasicBlockId,
ctx_stack: Vec<Ctx<'a>>,

View file

@ -6,7 +6,7 @@ pub mod visit;
use itertools::Itertools;
use petgraph::{
visit::{Control, DfsEvent, EdgeRef},
Direction, Graph,
Direction,
};
pub mod graph {
@ -23,6 +23,8 @@ pub use builder::{ControlFlowGraphBuilder, CtxCursor, CtxFlags};
pub use dot::DisplayDot;
use visit::set_depth_first_search;
pub type Graph = petgraph::graph::DiGraph<usize, EdgeType>;
#[derive(Debug, Clone)]
pub enum EdgeType {
/// Conditional jumps
@ -62,12 +64,12 @@ pub enum EvalConstConditionResult {
#[derive(Debug)]
pub struct ControlFlowGraph {
pub graph: Graph<usize, EdgeType>,
pub graph: Graph,
pub basic_blocks: Vec<BasicBlock>,
}
impl ControlFlowGraph {
pub fn graph(&self) -> &Graph<usize, EdgeType> {
pub fn graph(&self) -> &Graph {
&self.graph
}
@ -131,10 +133,7 @@ impl ControlFlowGraph {
where
F: Fn(&Instruction) -> EvalConstConditionResult,
{
fn get_jump_target(
graph: &Graph<usize, EdgeType>,
node: BasicBlockId,
) -> Option<BasicBlockId> {
fn get_jump_target(graph: &Graph, node: BasicBlockId) -> Option<BasicBlockId> {
graph
.edges_directed(node, Direction::Outgoing)
.find_or_first(|e| matches!(e.weight(), EdgeType::Jump))