LCC编译器的源程序分析(63)创建DAG森林的源程序

#001 //
#002 void walk(Tree tp, int tlab, int flab)
#003 {
#004 //创建DAG森林.
#005 listnodes(tp, tlab, flab);
#006
#007 //如果DAG森林生成.
#008 if (forest)
#009 {
#010 Node list = forest->link;
#011 forest->link = NULL;
#012
#013 //把多次引用的DAG节点,修改为对临时变量的引用.
#014 if (!IR->wants_dag && errcnt == 0)
#015 {
#016 list = undag(list);
#017 }
#018
#019 //创建代码块保存DAG的列表.
#020 AppendCode(code::Gen)->u.forest = list;
#021 forest = NULL;
#022 }
#023
#024 reset();
#025 deallocate(STMT);
#026 }

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License