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 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 /// Also, if the configuration specifies to do so, remove/unlink all deleted | 195 /// Also, if the configuration specifies to do so, remove/unlink all deleted |
196 /// instructions from the Cfg, to speed up later passes over the instructions. | 196 /// instructions from the Cfg, to speed up later passes over the instructions. |
197 void renumberInstructions(); | 197 void renumberInstructions(); |
198 void placePhiLoads(); | 198 void placePhiLoads(); |
199 void placePhiStores(); | 199 void placePhiStores(); |
200 void deletePhis(); | 200 void deletePhis(); |
201 void advancedPhiLowering(); | 201 void advancedPhiLowering(); |
202 void reorderNodes(); | 202 void reorderNodes(); |
203 void shuffleNodes(); | 203 void shuffleNodes(); |
204 void localCSE(bool AssumeSSA); | 204 void localCSE(bool AssumeSSA); |
| 205 void floatConstantCSE(); |
205 void shortCircuitJumps(); | 206 void shortCircuitJumps(); |
206 void loopInvariantCodeMotion(); | 207 void loopInvariantCodeMotion(); |
207 | 208 |
208 /// Scan allocas to determine whether we need to use a frame pointer. | 209 /// Scan allocas to determine whether we need to use a frame pointer. |
209 /// If SortAndCombine == true, merge all the fixed-size allocas in the | 210 /// If SortAndCombine == true, merge all the fixed-size allocas in the |
210 /// entry block and emit stack or frame pointer-relative addressing. | 211 /// entry block and emit stack or frame pointer-relative addressing. |
211 void processAllocas(bool SortAndCombine); | 212 void processAllocas(bool SortAndCombine); |
212 void doAddressOpt(); | 213 void doAddressOpt(); |
213 /// Find clusters of insertelement/extractelement instructions that can be | 214 /// Find clusters of insertelement/extractelement instructions that can be |
214 /// replaced by a shufflevector instruction. | 215 /// replaced by a shufflevector instruction. |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 using OwnerType = Cfg; | 360 using OwnerType = Cfg; |
360 static StringPool *getStrings(const OwnerType *PoolOwner) { | 361 static StringPool *getStrings(const OwnerType *PoolOwner) { |
361 return PoolOwner->getVarStrings(); | 362 return PoolOwner->getVarStrings(); |
362 } | 363 } |
363 }; | 364 }; |
364 using VariableString = StringID<VariableStringPoolTraits>; | 365 using VariableString = StringID<VariableStringPoolTraits>; |
365 | 366 |
366 } // end of namespace Ice | 367 } // end of namespace Ice |
367 | 368 |
368 #endif // SUBZERO_SRC_ICECFG_H | 369 #endif // SUBZERO_SRC_ICECFG_H |
OLD | NEW |