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 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 // validation is not.) | 344 // validation is not.) |
345 llvm::BitVector LiveOrig = Live; | 345 llvm::BitVector LiveOrig = Live; |
346 Live.resize(Liveness->getNumGlobalVars()); | 346 Live.resize(Liveness->getNumGlobalVars()); |
347 // Non-global arguments in the entry node are allowed to be live on | 347 // Non-global arguments in the entry node are allowed to be live on |
348 // entry. | 348 // entry. |
349 bool IsEntry = (Func->getEntryNode() == this); | 349 bool IsEntry = (Func->getEntryNode() == this); |
350 if (!(IsEntry || Live == LiveOrig)) { | 350 if (!(IsEntry || Live == LiveOrig)) { |
351 // This is a fatal liveness consistency error. Print some | 351 // This is a fatal liveness consistency error. Print some |
352 // diagnostics and abort. | 352 // diagnostics and abort. |
353 Ostream &Str = Func->getContext()->getStrDump(); | 353 Ostream &Str = Func->getContext()->getStrDump(); |
354 Func->setCurrentNode(NULL); | 354 Func->resetCurrentNode(); |
355 Str << "LiveOrig-Live ="; | 355 Str << "LiveOrig-Live ="; |
356 for (SizeT i = Live.size(); i < LiveOrig.size(); ++i) { | 356 for (SizeT i = Live.size(); i < LiveOrig.size(); ++i) { |
357 if (LiveOrig.test(i)) { | 357 if (LiveOrig.test(i)) { |
358 Str << " "; | 358 Str << " "; |
359 Liveness->getVariable(i, this)->dump(Func); | 359 Liveness->getVariable(i, this)->dump(Func); |
360 } | 360 } |
361 } | 361 } |
362 Str << "\n"; | 362 Str << "\n"; |
363 llvm_unreachable("Fatal inconsistency in liveness analysis"); | 363 llvm_unreachable("Fatal inconsistency in liveness analysis"); |
364 } | 364 } |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 I != E; ++I) { | 578 I != E; ++I) { |
579 if (I != OutEdges.begin()) | 579 if (I != OutEdges.begin()) |
580 Str << ", "; | 580 Str << ", "; |
581 Str << "%" << (*I)->getName(); | 581 Str << "%" << (*I)->getName(); |
582 } | 582 } |
583 Str << "\n"; | 583 Str << "\n"; |
584 } | 584 } |
585 } | 585 } |
586 | 586 |
587 } // end of namespace Ice | 587 } // end of namespace Ice |
OLD | NEW |