Esempio n. 1
0
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);
}
Esempio n. 2
0
void tfree()
{
    if (g_pool_tmp_used != NULL) {
        smpoolDelete(g_pool_tmp_used);
        g_pool_tmp_used = NULL;
    }
}
Esempio n. 3
0
void drLinearFree(void)
{
    ASSERT0(g_d2d_used_pool);
    smpoolDelete(g_d2d_used_pool);
    g_d2d_used_pool = NULL;
    return;
}
Esempio n. 4
0
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);
    }
}