OLD | NEW |
1 //===- subzero/src/IceCfgNode.cpp - Basic block (node) implementation -----===// | 1 //===- subzero/src/IceCfgNode.cpp - Basic block (node) implementation -----===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file implements the CfgNode class, including the complexities | 10 // This file implements the CfgNode class, including the complexities |
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
463 // ======================== Dump routines ======================== // | 463 // ======================== Dump routines ======================== // |
464 | 464 |
465 void CfgNode::emit(Cfg *Func) const { | 465 void CfgNode::emit(Cfg *Func) const { |
466 Func->setCurrentNode(this); | 466 Func->setCurrentNode(this); |
467 Ostream &Str = Func->getContext()->getStrEmit(); | 467 Ostream &Str = Func->getContext()->getStrEmit(); |
468 if (Func->getEntryNode() == this) { | 468 if (Func->getEntryNode() == this) { |
469 Str << Func->getContext()->mangleName(Func->getFunctionName()) << ":\n"; | 469 Str << Func->getContext()->mangleName(Func->getFunctionName()) << ":\n"; |
470 } | 470 } |
471 Str << getAsmName() << ":\n"; | 471 Str << getAsmName() << ":\n"; |
472 for (PhiList::const_iterator I = Phis.begin(), E = Phis.end(); I != E; ++I) { | 472 for (PhiList::const_iterator I = Phis.begin(), E = Phis.end(); I != E; ++I) { |
473 InstPhi *Inst = *I; | 473 InstPhi *Phi = *I; |
474 if (Inst->isDeleted()) | 474 if (Phi->isDeleted()) |
475 continue; | 475 continue; |
476 // Emitting a Phi instruction should cause an error. | 476 // Emitting a Phi instruction should cause an error. |
477 Inst->emit(Func); | 477 Inst *Instr = Phi; |
| 478 Instr->emit(Func); |
478 } | 479 } |
479 for (InstList::const_iterator I = Insts.begin(), E = Insts.end(); I != E; | 480 for (InstList::const_iterator I = Insts.begin(), E = Insts.end(); I != E; |
480 ++I) { | 481 ++I) { |
481 Inst *Inst = *I; | 482 Inst *Inst = *I; |
482 if (Inst->isDeleted()) | 483 if (Inst->isDeleted()) |
483 continue; | 484 continue; |
484 // Here we detect redundant assignments like "mov eax, eax" and | 485 // Here we detect redundant assignments like "mov eax, eax" and |
485 // suppress them. | 486 // suppress them. |
486 if (Inst->isRedundantAssign()) | 487 if (Inst->isRedundantAssign()) |
487 continue; | 488 continue; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
572 I != E; ++I) { | 573 I != E; ++I) { |
573 if (I != OutEdges.begin()) | 574 if (I != OutEdges.begin()) |
574 Str << ", "; | 575 Str << ", "; |
575 Str << "%" << (*I)->getName(); | 576 Str << "%" << (*I)->getName(); |
576 } | 577 } |
577 Str << "\n"; | 578 Str << "\n"; |
578 } | 579 } |
579 } | 580 } |
580 | 581 |
581 } // end of namespace Ice | 582 } // end of namespace Ice |
OLD | NEW |