Basic Blocks

Basic Block是线性无分支代码段,只有一个入口和出口。划分依据包括程序首条语句、goto目标等。在迭代二分搜索的示例中,Basic Blocks可能是(3-6), (7-8), (9-10), (11-12)。Control Flow Graph (CFG)将每个Basic Block表示为节点,描述程序执行顺序。在CFG中,函数起点、while循环、退出块等都有特定的Basic Block结构。" 113833365,10701607,"SAS编程基础:IF-THEN, ELSE, RETAIN与ARRAY用法解析
摘要由CSDN通过智能技术生成

首先要知道Basic Block是什么。是一段线性程序,这段代码里面没有分支,只有一个入口和一个出口。划分basic blocks,首先要找到leaders(入口语句):

  • 程序的第一条语句
  • goto语句的目标语句(statement)。比如下面代码第6行?
  • goto后面紧跟着的语句。比如下面代码第8、10行?

然后就是根据leaders来划分basic blocks

  • 所有跟在leader后面到下一个leader出现前的语句
  • 第一个语句叫做first leader
  • 包含first leader的block叫做initial block

一个basic block只有一个入口,只能从这一个入口进到这个basic block里面并且执行它的代码

一个basic block只有一个出口,这个basic block里的最后一句跑完了之后就得去下一个basic block?

以下面的binary search 为例。如果按照这个划分,那下面iterativeBinarySearch的basic blocks就是(3-6), (7-8), (9-10), (11-12)?
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值