PrologEpilogGenerator::PrologEpilogGenerator(Cfg &cfg) :
    mm(cfg.getMM()),
    cfg(cfg), 
    outRegArgs(mm),
    prologInsts(mm),
    epilogInsts(mm),
    allocInsts(mm),
    saveSpInsts(mm),
    savePfsInsts(mm),
    saveUnatInsts(mm),
    saveGrsInsts(mm),
    saveFrsInsts(mm),
    saveBrsInsts(mm),
    savePrsInsts(mm),
    saveRpInsts(mm),
    restRpInsts(mm),
    restPrsInsts(mm),
    restBrsInsts(mm),
    restFrsInsts(mm),
    restGrsInsts(mm),
    restUnatInsts(mm),
    restPfsInsts(mm),
    restSpInsts(mm),
    epilogNodes(mm) {
    
    opndManager = cfg.getOpndManager();
    p0          = opndManager->getP0();
    sp          = opndManager->getR12();
    stackAddr   = opndManager->newRegOpnd(OPND_G_REG, DATA_I64, SPILL_REG1);
}
示例#2
0
IpfVarCodeSelector::IpfVarCodeSelector(Cfg &cfg, OpndVector &opnds) :
    mm(cfg.getMM()),
    cfg(cfg),
    opnds(opnds) {

    opndManager = cfg.getOpndManager();
}
示例#3
0
LiveAnalyzer::LiveAnalyzer(Cfg &cfg) : 
    cfg(cfg),
    mm(cfg.getMM()),
    workSet(mm),
    liveManager(cfg),
    liveSet(liveManager.getLiveSet()),
    dceFlag(false) {
}
示例#4
0
IpfMethodCodeSelector::IpfMethodCodeSelector(Cfg                  &cfg,
                                             CompilationInterface &compilationInterface) : 
    mm(cfg.getMM()),
    cfg(cfg), 
    compilationInterface(compilationInterface),
    methodDesc(NULL),
    opnds(mm),
    nodes(mm) {
}
示例#5
0
QpTree::QpTree(Cfg &cfg) : 
    cfg(cfg),
    mm(cfg.getMM()),
    qpMap(mm),
    slot(0),
    p0(cfg.getOpndManager()->getP0()) {

    qpMap.insert( make_pair(p0, new(mm) QpNode(NULL, MAX_QP_MASK)) );  // make root qpNode
}
示例#6
0
IpfCfgCodeSelector::IpfCfgCodeSelector(Cfg                  &cfg, 
                                       NodeVector           &nodes, 
                                       OpndVector           &opnds,
                                       CompilationInterface &compilationInterface) : 
    mm(cfg.getMM()),
    cfg(cfg),
    nodes(nodes), 
    opnds(opnds),
    compilationInterface(compilationInterface),
    opndManager(cfg.getOpndManager()) {
}
示例#7
0
LiveManager::LiveManager(Cfg &cfg) : 
    cfg(cfg),
    qpTree(cfg),
    liveSet(cfg.getMM()) {
}