IR_EXPR_TAB::~IR_EXPR_TAB() { for (SC<ExpRep*> * sc = m_ir_expr_lst.get_head(); sc != m_ir_expr_lst.end(); sc = m_ir_expr_lst.get_next(sc)) { ExpRep * ie = sc->val(); ASSERT0(ie); delete ie; } smpoolDelete(m_pool); smpoolDelete(m_sc_pool); }
void tfree() { if (g_pool_tmp_used != NULL) { smpoolDelete(g_pool_tmp_used); g_pool_tmp_used = NULL; } }
void drLinearFree(void) { ASSERT0(g_d2d_used_pool); smpoolDelete(g_d2d_used_pool); g_d2d_used_pool = NULL; return; }
void UseDefMgr::cleanOrDestroy(bool is_reinit) { ASSERT0(m_ru); for (INT i = 0; i <= m_vopnd_vec.get_last_idx(); i++) { VOpnd * v = m_vopnd_vec.get((UINT)i); if (v != NULL && v->is_md()) { ((VMD*)v)->destroy(); } } for (INT i = 0; i <= m_def_vec.get_last_idx(); i++) { MDDef * d = m_def_vec.get((UINT)i); if (d != NULL && d->getNextSet() != NULL) { d->getNextSet()->clean(*m_sbs_mgr); } } for (INT i = 0; i <= m_mdssainfo_vec.get_last_idx(); i++) { MDSSAInfo * info = m_mdssainfo_vec.get((UINT)i); if (info != NULL) { info->destroy(*m_sbs_mgr); } } destroyMD2VMDVec(); if (is_reinit) { m_map_md2vmd.destroy(); m_map_md2vmd.init(); m_philist_vec.clean(); m_def_vec.clean(); m_mdssainfo_vec.clean(); m_vopnd_vec.clean(); m_def_count = 1; m_vopnd_count = 1; } ASSERT0(m_vopnd_sc_pool); smpoolDelete(m_vopnd_sc_pool); ASSERT0(m_phi_pool); smpoolDelete(m_phi_pool); ASSERT0(m_def_pool); smpoolDelete(m_def_pool); ASSERT0(m_defset_pool); smpoolDelete(m_defset_pool); ASSERT0(m_vmd_pool); smpoolDelete(m_vmd_pool); ASSERT0(m_vconst_pool); smpoolDelete(m_vconst_pool); ASSERT0(m_philist_pool); smpoolDelete(m_philist_pool); ASSERT0(m_philist_sc_pool); smpoolDelete(m_philist_sc_pool); ASSERT0(m_mdssainfo_pool); smpoolDelete(m_mdssainfo_pool); if (is_reinit) { m_vopnd_sc_pool = smpoolCreate(sizeof(SC<VOpnd*>) * 4, MEM_CONST_SIZE); m_phi_pool = smpoolCreate(sizeof(MDPhi) * 2, MEM_CONST_SIZE); m_def_pool = smpoolCreate(sizeof(MDDef) * 2, MEM_CONST_SIZE); m_defset_pool = smpoolCreate(sizeof(MDDefSet) * 2, MEM_CONST_SIZE); m_vmd_pool = smpoolCreate(sizeof(VMD) * 2, MEM_CONST_SIZE); m_vconst_pool = smpoolCreate(sizeof(VConst)*2, MEM_CONST_SIZE); m_philist_pool = smpoolCreate(sizeof(MDPhiList)*2, MEM_CONST_SIZE); m_philist_sc_pool = smpoolCreate(sizeof(SC<MDPhi*>) * 4, MEM_CONST_SIZE); m_mdssainfo_pool = smpoolCreate(sizeof(MDSSAInfo)*4, MEM_CONST_SIZE); } }