pub fn maybe_add_edge(&mut self, source: MAddress, target: MAddress) {
        let source_block = self.block_of(source).unwrap_or_else(|| {
            radeco_err!("Block not found @ {:?}", source);
            self.ssa.invalid_action().unwrap()
        });
        if self.ssa.outgoing_edges(source_block).is_empty() {
            let target_block = self.block_of(target).unwrap_or_else(|| {
                radeco_err!("Block not found @ {:?}", target);
                self.ssa.invalid_action().unwrap()
            });
            if target_block != source_block {
                radeco_trace!("phip_add_edge|{} --{}--> {}", source, UNCOND_EDGE, target);
                self.ssa
                    .insert_control_edge(source_block, target_block, UNCOND_EDGE);
            }
        }
    }
// Adds an unconditional edge the the next block if there are no edges for the current block.
Adds an unconditional edge the the next block if there are no edges for the current block.
Adds an unconditional edge the the next block if there are no edges for the current block .
pub fn maybe_add_edge(&mut self, source: MAddress, target: MAddress) {
        let source_block = self.block_of(source).unwrap_or_else(|| {
            radeco_err!("Block not found @ {:?}", source);
            self.ssa.invalid_action().unwrap()
        });
        if self.ssa.outgoing_edges(source_block).is_empty() {
            let target_block = self.block_of(target).unwrap_or_else(|| {
                radeco_err!("Block not found @ {:?}", target);
                self.ssa.invalid_action().unwrap()
            });
            if target_block != source_block {
                radeco_trace!("phip_add_edge|{} --{}--> {}", source, UNCOND_EDGE, target);
                self.ssa
                    .insert_control_edge(source_block, target_block, UNCOND_EDGE);
            }
        }
    }
pub fn maybe_add_edge ( & mut self , source : MAddress , target : MAddress ) { let source_block = self . block_of ( source ) . unwrap_or_else ( | | { radeco_err ! ( " " source ) ; self . ssa . invalid_action ( ) . unwrap ( ) } ) ; if self . ssa . outgoing_edges ( source_block ) . is_empty ( ) { let target_block = self . block_of ( target ) . unwrap_or_else ( | | { radeco_err ! ( " " target ) ; self . ssa . invalid_action ( ) . unwrap ( ) } ) ; if target_block != source_block { radeco_trace ! ( " " source UNCOND_EDGE target ) ; self . ssa . insert_control_edge ( source_block , target_block , UNCOND_EDGE ) ; } } }
Adds an unconditional edge the the next block if there are no edges for the current block.
Adds an unconditional edge the the next block if there are no edges for the current block .
&mut self
source
MAddress
target
MAddress
&mut self
source
MAddress
target
MAddress