OLD | NEW |
1 //===- subzero/src/IceCfg.cpp - Control flow graph implementation ---------===// | 1 //===- subzero/src/IceCfg.cpp - Control flow graph 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 Cfg class, including constant pool | 10 // This file implements the Cfg class, including constant pool |
(...skipping 103 matching lines...) Loading... |
114 void Cfg::doArgLowering() { | 114 void Cfg::doArgLowering() { |
115 getTarget()->lowerArguments(); | 115 getTarget()->lowerArguments(); |
116 } | 116 } |
117 | 117 |
118 void Cfg::doAddressOpt() { | 118 void Cfg::doAddressOpt() { |
119 for (NodeList::iterator I = Nodes.begin(), E = Nodes.end(); I != E; ++I) { | 119 for (NodeList::iterator I = Nodes.begin(), E = Nodes.end(); I != E; ++I) { |
120 (*I)->doAddressOpt(); | 120 (*I)->doAddressOpt(); |
121 } | 121 } |
122 } | 122 } |
123 | 123 |
| 124 void Cfg::doNopInsertion() { |
| 125 for (NodeList::iterator I = Nodes.begin(), E = Nodes.end(); I != E; ++I) { |
| 126 (*I)->doNopInsertion(); |
| 127 } |
| 128 } |
| 129 |
124 void Cfg::genCode() { | 130 void Cfg::genCode() { |
125 for (NodeList::iterator I = Nodes.begin(), E = Nodes.end(); I != E; ++I) { | 131 for (NodeList::iterator I = Nodes.begin(), E = Nodes.end(); I != E; ++I) { |
126 (*I)->genCode(); | 132 (*I)->genCode(); |
127 } | 133 } |
128 } | 134 } |
129 | 135 |
130 // Compute the stack frame layout. | 136 // Compute the stack frame layout. |
131 void Cfg::genFrame() { | 137 void Cfg::genFrame() { |
132 getTarget()->addProlog(Entry); | 138 getTarget()->addProlog(Entry); |
133 // TODO: Consider folding epilog generation into the final | 139 // TODO: Consider folding epilog generation into the final |
(...skipping 228 matching lines...) Loading... |
362 for (NodeList::const_iterator I = Nodes.begin(), E = Nodes.end(); I != E; | 368 for (NodeList::const_iterator I = Nodes.begin(), E = Nodes.end(); I != E; |
363 ++I) { | 369 ++I) { |
364 (*I)->dump(this); | 370 (*I)->dump(this); |
365 } | 371 } |
366 if (getContext()->isVerbose(IceV_Instructions)) { | 372 if (getContext()->isVerbose(IceV_Instructions)) { |
367 Str << "}\n"; | 373 Str << "}\n"; |
368 } | 374 } |
369 } | 375 } |
370 | 376 |
371 } // end of namespace Ice | 377 } // end of namespace Ice |
OLD | NEW |