81 bool addLoopProperty) {
83 for (MoveNodeUseMapSet::const_iterator srcIter = srcMap.begin();
84 srcIter != srcMap.end(); srcIter++) {
89 size_t size = dstSet.size();
92 if (dstSet.size() > size) {
110 bool setLoopProperty) {
112 for (LiveRangeData::MoveNodeUseSet::const_iterator i =
113 src.begin(); i != src.end(); i++) {
115 if (setLoopProperty || mnu.
loop()) {
130 std::set<TCEString> aliveRegs;
134 for (MoveNodeUseMapSet::iterator rdrIter =
regDefReaches_.begin();
142 aliveRegs.insert(reg);
148 for (MoveNodeUseSet::iterator iter = firstUses.begin();
149 iter != firstUses.end(); iter++) {
152 int mnCycle = mn.
cycle();
153 if (iter->pseudo()) {
154 mnCycle += delaySlots;
156 if (cycle <= mnCycle) {
157 aliveRegs.insert(reg);
160 aliveRegs.insert(reg);
172 for (MoveNodeUseSet::iterator iter = lastDefs.begin();
173 iter != lastDefs.end(); iter++) {
176 int mnCycle = mn.
cycle();
177 if (iter->pseudo()) {
178 mnCycle += delaySlots;
180 if (cycle >= mnCycle) {
181 aliveRegs.insert(reg);
191 for (
int i = 0; i < ddg.
nodeCount(); i++) {
200 for (DataDependenceGraph::EdgeSet::iterator eIter =
201 edges.begin(); eIter != edges.end(); eIter++) {
212 if (node.
cycle() + delaySlots > cycle) {
217 int delay = edge.
headPseudo() ? delaySlots : 0;
220 headNode.
cycle()+delay >= cycle) {
221 aliveRegs.insert(reg);