2021SC@SDUSC
Driver是干什么的?如何实现的?
driver在代码里面是src/maple_driver,生成的目标文件是maple,依赖
libmplipa/libmplir/libmplme/libmplmewpo/libmpl2mpl 以及闭源库libmplphase.a/libmempool.a/libmaple_driverutil.a
maple就是用于处理mpl文件
1)me –quiet
- mpl2mpl –quiet –regnativefunc –maplelinker
3)mplcg –quiet –no-pie –verbose-asm –maplelinker --fpic
RC是啥?如何处理的?
引用计数,一种内存管理计数,保存对象被引用的次数,当为0的时候,将对象释放。
提供了31个API支持RC操作:
MCC_IncRef_NativeRCFast
MCC_DecRef_NativeRCFast
mplt如何处理的?
由DriverRunner::Run()发起
由ProcessMpl2mplAndMePhases具体实现
该函数使用InterleavedManager创建各个phase,由ModulePhaseManager和
MeFuncPhaseManager分别各自运行,最终是由每个注册的phase运行
而每个phase,就是某些优化措施