条件判断语句的代码生成
st1
if(r1<r2)
st2
else
st3
st4
st1
BB1 com_LT r1,r2 → r3
cbr r3 → L1,L2
L1 : st2
BB2 jumpI L3
BB3 L2 : st3
BB4 L3 : st4
这里的com_LT是比较less than 如果r1比r2小 返回true到r3
cbr是condition branch 如果r3是true 走L1 否则走L2
BB代表的basic block 这里遇到分支branch 或 jump 或 一个新的label 都是一个basic block
Control Flow Graph(CFG)
本文探讨了编译器如何生成条件判断和循环的代码,包括使用基本块(BB)和控制流图(CFG)。通过示例展示了条件分支(如com_LT, com_EQ)和循环的两种不同编写方式,以及如何处理布尔表达式的计算。同时,解释了在优化代码过程中,基本块划分对逻辑清晰和简化工作的重要性。"
83384803,2215699,机器学习实战:kaggle案例解析通用流程,"['机器学习', '数据预处理', '特征工程', '模型选择', 'kaggle案例']
最低0.47元/天 解锁文章

2115

被折叠的 条评论
为什么被折叠?



