예제 #1
0
 void CounterPropagateAddr(std::set<MachineInstr *> MIs, unsigned Addr)
     const {
   for (std::set<MachineInstr *>::iterator It = MIs.begin(), E = MIs.end();
       It != E; ++It) {
     MachineInstr *MI = *It;
     CounterPropagateAddr(MI, Addr);
   }
 }
예제 #2
0
 void
 EmitALUClause(MachineBasicBlock::iterator InsertPos, ClauseFile &Clause,
     unsigned &CfCount) {
   CounterPropagateAddr(Clause.first, CfCount);
   MachineBasicBlock *BB = Clause.first->getParent();
   BuildMI(BB, InsertPos->getDebugLoc(), TII->get(AMDGPU::ALU_CLAUSE))
       .addImm(CfCount);
   for (unsigned i = 0, e = Clause.second.size(); i < e; ++i) {
     BB->splice(InsertPos, BB, Clause.second[i]);
   }
   CfCount += Clause.second.size();
 }