From: Devang Patel Date: Wed, 26 Jan 2011 18:20:04 +0000 (+0000) Subject: Refactor. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=55d20e8ff1e458f177302386d14f1a4dbdd86028;p=oota-llvm.git Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124300 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp index 5d20fd70a47..4c9158a4529 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp @@ -501,6 +501,35 @@ namespace { }; } +/// ProcessSDDbgValues - Process SDDbgValues assoicated with this node. +static void ProcessSDDbgValues(SDNode *N, SelectionDAG *DAG, + InstrEmitter &Emitter, + SmallVector, 32> &Orders, + DenseMap &VRBaseMap, + unsigned Order) { + if (!N->getHasDebugValue()) + return; + + // Opportunistically insert immediate dbg_value uses, i.e. those with source + // order number right after the N. + MachineBasicBlock *BB = Emitter.getBlock(); + MachineBasicBlock::iterator InsertPos = Emitter.getInsertPos(); + SmallVector &DVs = DAG->GetDbgValues(N); + for (unsigned i = 0, e = DVs.size(); i != e; ++i) { + if (DVs[i]->isInvalidated()) + continue; + unsigned DVOrder = DVs[i]->getOrder(); + if (!Order || DVOrder == ++Order) { + MachineInstr *DbgMI = Emitter.EmitDbgValue(DVs[i], VRBaseMap); + if (DbgMI) { + Orders.push_back(std::make_pair(DVOrder, DbgMI)); + BB->insert(InsertPos, DbgMI); + } + DVs[i]->setIsInvalidated(); + } + } +} + // ProcessSourceNode - Process nodes with source order numbers. These are added // to a vector which EmitSchedule uses to determine how to insert dbg_value // instructions in the right order. @@ -521,25 +550,7 @@ static void ProcessSourceNode(SDNode *N, SelectionDAG *DAG, } Orders.push_back(std::make_pair(Order, prior(Emitter.getInsertPos()))); - if (!N->getHasDebugValue()) - return; - // Opportunistically insert immediate dbg_value uses, i.e. those with source - // order number right after the N. - MachineBasicBlock::iterator InsertPos = Emitter.getInsertPos(); - SmallVector &DVs = DAG->GetDbgValues(N); - for (unsigned i = 0, e = DVs.size(); i != e; ++i) { - if (DVs[i]->isInvalidated()) - continue; - unsigned DVOrder = DVs[i]->getOrder(); - if (DVOrder == ++Order) { - MachineInstr *DbgMI = Emitter.EmitDbgValue(DVs[i], VRBaseMap); - if (DbgMI) { - Orders.push_back(std::make_pair(DVOrder, DbgMI)); - BB->insert(InsertPos, DbgMI); - } - DVs[i]->setIsInvalidated(); - } - } + ProcessSDDbgValues(N, DAG, Emitter, Orders, VRBaseMap, Order); }