当 gimplify_function_tree() 最终从 finish_function() 调用时,AST 被 gimplified 化。
GIMPLE 表示基于 [2] 中描述的 SIMPLE
根据这篇论文,目标是将树表示为基本树 语句:
根据需要在函数中创建临时变量 create_tmp_var() 和 declare_tmp_vars()。
在此阶段,GCC 优化复杂的条件表达式,即
if (a || b) stmt;
翻译成
if (a) goto L1; if (b) goto L1; else goto L2; L1: stmt; L2:
此外,条件表达式的每个分支都包装在 STATEMENT_LIST树。
评论
说点什么...