OLD | NEW |
1 //===- subzero/src/IceCfg.h - Control flow graph ----------------*- C++ -*-===// | 1 //===- subzero/src/IceCfg.h - Control flow graph ----------------*- C++ -*-===// |
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 /// \file | 10 /// \file |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 /// | 193 /// |
194 /// Also, if the configuration specifies to do so, remove/unlink all deleted | 194 /// Also, if the configuration specifies to do so, remove/unlink all deleted |
195 /// instructions from the Cfg, to speed up later passes over the instructions. | 195 /// instructions from the Cfg, to speed up later passes over the instructions. |
196 void renumberInstructions(); | 196 void renumberInstructions(); |
197 void placePhiLoads(); | 197 void placePhiLoads(); |
198 void placePhiStores(); | 198 void placePhiStores(); |
199 void deletePhis(); | 199 void deletePhis(); |
200 void advancedPhiLowering(); | 200 void advancedPhiLowering(); |
201 void reorderNodes(); | 201 void reorderNodes(); |
202 void shuffleNodes(); | 202 void shuffleNodes(); |
| 203 void localCSE(); |
203 | 204 |
204 /// Scan allocas to determine whether we need to use a frame pointer. | 205 /// Scan allocas to determine whether we need to use a frame pointer. |
205 /// If SortAndCombine == true, merge all the fixed-size allocas in the | 206 /// If SortAndCombine == true, merge all the fixed-size allocas in the |
206 /// entry block and emit stack or frame pointer-relative addressing. | 207 /// entry block and emit stack or frame pointer-relative addressing. |
207 void processAllocas(bool SortAndCombine); | 208 void processAllocas(bool SortAndCombine); |
208 void doAddressOpt(); | 209 void doAddressOpt(); |
209 /// Find clusters of insertelement/extractelement instructions that can be | 210 /// Find clusters of insertelement/extractelement instructions that can be |
210 /// replaced by a shufflevector instruction. | 211 /// replaced by a shufflevector instruction. |
211 void materializeVectorShuffles(); | 212 void materializeVectorShuffles(); |
212 void doArgLowering(); | 213 void doArgLowering(); |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 using OwnerType = Cfg; | 354 using OwnerType = Cfg; |
354 static StringPool *getStrings(const OwnerType *PoolOwner) { | 355 static StringPool *getStrings(const OwnerType *PoolOwner) { |
355 return PoolOwner->getVarStrings(); | 356 return PoolOwner->getVarStrings(); |
356 } | 357 } |
357 }; | 358 }; |
358 using VariableString = StringID<VariableStringPoolTraits>; | 359 using VariableString = StringID<VariableStringPoolTraits>; |
359 | 360 |
360 } // end of namespace Ice | 361 } // end of namespace Ice |
361 | 362 |
362 #endif // SUBZERO_SRC_ICECFG_H | 363 #endif // SUBZERO_SRC_ICECFG_H |
OLD | NEW |