2019-9-23~2019-10-20

周一:struct.str_global_point_x 变量名字信息在debug的metadata中,较复杂没找到子变量名,暂放。构思构建树完成struct global拆解方案,存放str及其所有子变量,树类基本函数初步完成,明天将分解的global str存入,写好ppt总结,并完善struct类。

周二:继续完善struct类结构和函数调用,明天对getelementptr通过树node进行替换。

周三:构建树的struct global拆解基本完成,可以将局部变量和全局变量全部分解,在替换过程中,当offset为phi得来的value时,无法进行替换。

周四:汇报讨论,struct在构建树完毕后,方案变为一层一层去拆,查资料如何创建memcpy指令,memcpy的创建需通过callInst创建。

周五:(1)将global一次性分解完修改为一层层拆解;(2)跑个小case通过树节点创建出下一层memcpy指令,下一步规划memcpy拆解。

周日:将第一层的global的memcpy拆解为子变量的memcpy,通过global的tree去替换global所有相关指令。

周一:通过global的User替换其相关指令时报错,User中的value值需要删除,还需要把连接的边也删除,替换全局变量和局部变量成功。将所写的代码进行全篇注释和问题整理,计划假期后的下一步工作。

10-10:通过循环遍历IR进行处理,可将struct一层一层全部替换。测试部分case。写季度报告。

10-11:讨论将循环遍历IR转移为循环遍历有向无环图,将与struct相关的instruction全放于图中,构建有向无环图和拓扑排序。

10-14周一:确定利用DAG拓扑排序处理IR的算法流程,讨论具体流程细节,思考创建DAG class成员和成员函数。

周二:利用IR中的structType构建出DAG图,每个vertex包含structType和pre_vertex、next_vertex(表示vertex连接方向),编写DAG class成员和成员函数。

周三:完成TopologicalSort处理顺序,并验证处理vertex顺序正确,遍历IR,将Struct Value存入与其Type一致的vertex。

周四:通过DAG vertex间父子关系,找到入度为零的StructType中的values,分解为subValues,将分解出为subStructType的values,存入Type一致的vertex。

周五、周六:完成value的user为getelementptr,用分解出的subValues替换与values相关的getelementptr指令,开会讨论处理memcpy处理方法讨论,将vertex中所有value全部分解先,再替换。注意user list的连接关系。

end10-20

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值