本文整理汇总了C++中IR::setRefMD方法的典型用法代码示例。如果您正苦于以下问题:C++ IR::setRefMD方法的具体用法?C++ IR::setRefMD怎么用?C++ IR::setRefMD使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IR
的用法示例。
在下文中一共展示了IR::setRefMD方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: allocVMD
//Allocate MDPhi and initialize with the number of operands.
//Each operands has zero version to mdid.
MDPhi * UseDefMgr::allocMDPhi(UINT mdid, UINT num_operands)
{
ASSERT0(mdid > 0 && num_operands > 0);
MDPhi * phi = (MDPhi*)smpoolMallocConstSize(sizeof(MDPhi), m_phi_pool);
phi->init();
MDDEF_id(phi) = m_def_count++;
m_def_vec.set(MDDEF_id(phi), phi);
VMD const* vmd = allocVMD(mdid, 0);
ASSERT0(vmd);
MD const* md = m_md_sys->getMD(mdid);
ASSERT0(md);
IR * last = NULL;
for (UINT i = 0; i < num_operands; i++) {
IR * opnd = m_ru->buildId(md->get_base());
opnd->setRefMD(md, m_ru);
MDSSAInfo * mdssainfo = genMDSSAInfo(opnd);
ASSERT0(m_sbs_mgr);
mdssainfo->getVOpndSet()->append(vmd, *m_sbs_mgr);
xcom::add_next(&MDPHI_opnd_list(phi), &last, opnd);
ID_phi(opnd) = phi;
}
return phi;
}