控制流图中的一个基本块
BasicBlock
01 Syntax
Microsoft.VisualBasic.ApplicationServices.Development.VisualStudio.IL.BasicBlock
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| ToString | 1 |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| Id | 1 | 块的编号(等于在 Blocks 列表中的下标) |
| Offset | 1 | 块首指令的 IL 偏移 |
| ImmediateDominator | 1 | 直接支配节点(idom);入口块指向自己,不可达块为 -1 |
| DominanceFrontier | 1 | 支配边界 DF(B) |
| ReversePostOrder | 1 | 反向后序序号(RPO),越小越靠前 |
| ImmediatePostDominator | 1 | 直接后支配节点;为虚拟出口时记 -1 |
| LoopLatch | 1 | 回边的源(latch);多重回边时记最后一条 |
| LoopFollow | 1 | 循环出口块(while 条件为假时去往的块) |
| LoopBody | 1 | 自然循环的块集合(含 header 与 latch) |
| Statements | 1 | 该块归约出的语句序列(不含跳转本身) |
| Condition | 1 | 末指令为条件分支时的条件表达式 |
| TrueSuccessor | 1 | 条件成立时去往的块 |
| FalseSuccessor | 1 | 条件不成立时去往的块 |
| ExitStack | 1 | 块出口处的求值栈(跨块的短路布尔会用到) |
| Terminates | 1 | 该块是否以 ret / throw 结束(不再有后继) |
| Instructions | 1 | |
| Predecessors | 1 | |
| Successors | 1 | |
| DominatorChildren | 1 | |
| PostOrder | 1 | |
| IsLoopHeader | 1 | |
| FirstOffset | 1 | |
| LastInstruction | 1 |
04 Members
Id
块的编号(等于在 Blocks 列表中的下标)
Offset
块首指令的 IL 偏移
ImmediateDominator
直接支配节点(idom);入口块指向自己,不可达块为 -1
DominanceFrontier
支配边界 DF(B)
ReversePostOrder
反向后序序号(RPO),越小越靠前
ImmediatePostDominator
直接后支配节点;为虚拟出口时记 -1
LoopLatch
回边的源(latch);多重回边时记最后一条
LoopFollow
循环出口块(while 条件为假时去往的块)
LoopBody
自然循环的块集合(含 header 与 latch)
Statements
该块归约出的语句序列(不含跳转本身)
Condition
末指令为条件分支时的条件表达式
TrueSuccessor
条件成立时去往的块
FalseSuccessor
条件不成立时去往的块
ExitStack
块出口处的求值栈(跨块的短路布尔会用到)
Terminates
该块是否以 ret / throw 结束(不再有后继)
Instructions
Predecessors
Successors
DominatorChildren
PostOrder
IsLoopHeader
FirstOffset
LastInstruction
ToString()