B2R2


IRBasicBlock Type

A basic block that consists of IR (LowUIR) statements. It contains all the InstructionInfo of the basic block. We say an IRBasicBlock is a fake block if it contains no instruction, i.e., when the instrs is [||].

Constructors

Constructor Description

IRBasicBlock(instrs, ppoint)

Full Usage: IRBasicBlock(instrs, ppoint)

Parameters:
Returns: IRBasicBlock
instrs : InstructionInfo[]
ppoint : ProgramPoint
Returns: IRBasicBlock

Instance members

Instance member Description

this.FakeBlockInfo

Full Usage: this.FakeBlockInfo

Modifiers: abstract

Fake block info, which exists only for a fake block.

this.FirstInsInfo

Full Usage: this.FirstInsInfo

Returns: InstructionInfo

The first InstructionInfo of the basic block.

Returns: InstructionInfo

this.FirstInstruction

Full Usage: this.FirstInstruction

Returns: Instruction

The first instruction of the basic block.

Returns: Instruction

this.IRStatements

Full Usage: this.IRStatements

Returns: Stmt[][]

Get an array of IR statements of a basic block.

Returns: Stmt[][]

this.InsInfos

Full Usage: this.InsInfos

Returns: InstructionInfo[]

Get the array of InstructionInfo of the basic block.

Returns: InstructionInfo[]

this.Instructions

Full Usage: this.Instructions

Returns: Instruction[]

Get an array of instructions that corresponds to each statement in the IRStatements.

Returns: Instruction[]

this.LastInsInfo

Full Usage: this.LastInsInfo

Returns: InstructionInfo

The last InstructionInfo of the basic block.

Returns: InstructionInfo

this.LastInstruction

Full Usage: this.LastInstruction

Returns: Instruction

The last instruction of the basic block.

Returns: Instruction

this.LastStmt

Full Usage: this.LastStmt

Returns: Stmt

Get the last IR statement of the bblock.

Returns: Stmt

this.SyscallTail

Full Usage: this.SyscallTail

Modifiers: abstract

Return the system call (at the end) instruction information if exists. If the block does not ends with a syscall this will return NoSyscallTail.

this.UniqueID

Full Usage: this.UniqueID

Returns: Addr * Addr
Modifiers: abstract

Unique identifier for IRBasicBlocks, which is a tuple of bbl's address and caller's address. Note the bbl's address many not exist for fake blocks, and the caller's address only exists for fake blocks. So we use dummy values in such cases, but the uniqueness is still guaranteed.

Returns: Addr * Addr