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);
 
 
virtual Node & headNode(const Edge &edge) const
 
Node & node(const int index) const
 
virtual EdgeSet outEdges(const Node &node) const
 
DependenceType dependenceType() const
 
EdgeReason edgeReason() const
 
const TCEString data() const
 
std::set< GraphEdge *, typename GraphEdge::Comparator > EdgeSet
 
static bool appendUseMapSets(const MoveNodeUseMapSet &srcMap, MoveNodeUseMapSet &dstMap, bool addLoopProperty)
 
void merge(LiveRangeData &succ)
 
MoveNodeUseMapSet regFirstUses_
 
MoveNodeUseMapSet regLastUses_
 
std::set< MoveNodeUse > MoveNodeUseSet
 
std::set< TCEString > registersUsedAfter_
 
MoveNodeUseMapSet regFirstDefines_
 
std::set< TCEString > registersAlive(int cycle, int delaySlots, class DataDependenceGraph &ddg)
 
std::map< TCEString, MoveNodeUseSet > MoveNodeUseMapSet
 
MoveNodeUseMapPair regKills_
 
static void appendMoveNodeUse(const MoveNodeUseSet &src, MoveNodeUseSet &dst, bool setLoopProperty)
 
MoveNodeUseMapSet regDefines_
 
MoveNodeUseMapSet regDefReaches_