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 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 | 203 |
204 /// Scan allocas to determine whether we need to use a frame pointer. | 204 /// Scan allocas to determine whether we need to use a frame pointer. |
205 /// If SortAndCombine == true, merge all the fixed-size allocas in the | 205 /// If SortAndCombine == true, merge all the fixed-size allocas in the |
206 /// entry block and emit stack or frame pointer-relative addressing. | 206 /// entry block and emit stack or frame pointer-relative addressing. |
207 void processAllocas(bool SortAndCombine); | 207 void processAllocas(bool SortAndCombine); |
208 void doAddressOpt(); | 208 void doAddressOpt(); |
| 209 /// Find clusters of insertelement/extractelement instructions that can be |
| 210 /// replaced by a shufflevector instruction. |
| 211 void materializeVectorShuffles(); |
209 void doArgLowering(); | 212 void doArgLowering(); |
210 void doNopInsertion(); | 213 void doNopInsertion(); |
211 void genCode(); | 214 void genCode(); |
212 void genFrame(); | 215 void genFrame(); |
213 void computeLoopNestDepth(); | 216 void computeLoopNestDepth(); |
214 void livenessLightweight(); | 217 void livenessLightweight(); |
215 void liveness(LivenessMode Mode); | 218 void liveness(LivenessMode Mode); |
216 bool validateLiveness() const; | 219 bool validateLiveness() const; |
217 void contractEmptyNodes(); | 220 void contractEmptyNodes(); |
218 void doBranchOpt(); | 221 void doBranchOpt(); |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 using OwnerType = Cfg; | 353 using OwnerType = Cfg; |
351 static StringPool *getStrings(const OwnerType *PoolOwner) { | 354 static StringPool *getStrings(const OwnerType *PoolOwner) { |
352 return PoolOwner->getVarStrings(); | 355 return PoolOwner->getVarStrings(); |
353 } | 356 } |
354 }; | 357 }; |
355 using VariableString = StringID<VariableStringPoolTraits>; | 358 using VariableString = StringID<VariableStringPoolTraits>; |
356 | 359 |
357 } // end of namespace Ice | 360 } // end of namespace Ice |
358 | 361 |
359 #endif // SUBZERO_SRC_ICECFG_H | 362 #endif // SUBZERO_SRC_ICECFG_H |
OLD | NEW |