| 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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 /// CfgNode::OutEdges[]. | 184 /// CfgNode::OutEdges[]. |
| 185 void computeInOutEdges(); | 185 void computeInOutEdges(); |
| 186 void renumberInstructions(); | 186 void renumberInstructions(); |
| 187 void placePhiLoads(); | 187 void placePhiLoads(); |
| 188 void placePhiStores(); | 188 void placePhiStores(); |
| 189 void deletePhis(); | 189 void deletePhis(); |
| 190 void advancedPhiLowering(); | 190 void advancedPhiLowering(); |
| 191 void reorderNodes(); | 191 void reorderNodes(); |
| 192 void shuffleNodes(); | 192 void shuffleNodes(); |
| 193 | 193 |
| 194 enum AllocaBaseVariableType { | |
| 195 BVT_StackPointer, | |
| 196 BVT_FramePointer, | |
| 197 BVT_UserPointer | |
| 198 }; | |
| 199 void sortAndCombineAllocas(CfgVector<Inst *> &Allocas, | |
| 200 uint32_t CombinedAlignment, InstList &Insts, | |
| 201 AllocaBaseVariableType BaseVariableType); | |
| 202 /// Scan allocas to determine whether we need to use a frame pointer. | 194 /// Scan allocas to determine whether we need to use a frame pointer. |
| 203 /// If SortAndCombine == true, merge all the fixed-size allocas in the | 195 /// If SortAndCombine == true, merge all the fixed-size allocas in the |
| 204 /// entry block and emit stack or frame pointer-relative addressing. | 196 /// entry block and emit stack or frame pointer-relative addressing. |
| 205 void processAllocas(bool SortAndCombine); | 197 void processAllocas(bool SortAndCombine); |
| 206 void doAddressOpt(); | 198 void doAddressOpt(); |
| 207 void doArgLowering(); | 199 void doArgLowering(); |
| 208 void doNopInsertion(); | 200 void doNopInsertion(); |
| 209 void genCode(); | 201 void genCode(); |
| 210 void genFrame(); | 202 void genFrame(); |
| 211 void computeLoopNestDepth(); | 203 void computeLoopNestDepth(); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 /// one of them. It returns a list with all the globals that the profiling | 252 /// one of them. It returns a list with all the globals that the profiling |
| 261 /// code needs to be defined. | 253 /// code needs to be defined. |
| 262 void profileBlocks(); | 254 void profileBlocks(); |
| 263 | 255 |
| 264 /// Delete registered jump table placeholder instructions. This should only be | 256 /// Delete registered jump table placeholder instructions. This should only be |
| 265 /// called once all repointing has taken place. | 257 /// called once all repointing has taken place. |
| 266 void deleteJumpTableInsts(); | 258 void deleteJumpTableInsts(); |
| 267 /// Iterate through the registered jump tables and emit them. | 259 /// Iterate through the registered jump tables and emit them. |
| 268 void emitJumpTables(); | 260 void emitJumpTables(); |
| 269 | 261 |
| 262 enum AllocaBaseVariableType { |
| 263 BVT_StackPointer, |
| 264 BVT_FramePointer, |
| 265 BVT_UserPointer |
| 266 }; |
| 267 void sortAndCombineAllocas(CfgVector<Inst *> &Allocas, |
| 268 uint32_t CombinedAlignment, InstList &Insts, |
| 269 AllocaBaseVariableType BaseVariableType); |
| 270 void findRematerializable(); |
| 271 |
| 270 GlobalContext *Ctx; | 272 GlobalContext *Ctx; |
| 271 uint32_t SequenceNumber; /// output order for emission | 273 uint32_t SequenceNumber; /// output order for emission |
| 272 uint32_t ConstantBlindingCookie = 0; /// cookie for constant blinding | 274 uint32_t ConstantBlindingCookie = 0; /// cookie for constant blinding |
| 273 VerboseMask VMask; | 275 VerboseMask VMask; |
| 274 IceString FunctionName = ""; | 276 IceString FunctionName = ""; |
| 275 Type ReturnType = IceType_void; | 277 Type ReturnType = IceType_void; |
| 276 bool IsInternalLinkage = false; | 278 bool IsInternalLinkage = false; |
| 277 bool HasError = false; | 279 bool HasError = false; |
| 278 bool FocusedTiming = false; | 280 bool FocusedTiming = false; |
| 279 IceString ErrorMessage = ""; | 281 IceString ErrorMessage = ""; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 306 | 308 |
| 307 public: | 309 public: |
| 308 static void TlsInit() { ICE_TLS_INIT_FIELD(CurrentCfg); } | 310 static void TlsInit() { ICE_TLS_INIT_FIELD(CurrentCfg); } |
| 309 }; | 311 }; |
| 310 | 312 |
| 311 template <> Variable *Cfg::makeVariable<Variable>(Type Ty); | 313 template <> Variable *Cfg::makeVariable<Variable>(Type Ty); |
| 312 | 314 |
| 313 } // end of namespace Ice | 315 } // end of namespace Ice |
| 314 | 316 |
| 315 #endif // SUBZERO_SRC_ICECFG_H | 317 #endif // SUBZERO_SRC_ICECFG_H |
| OLD | NEW |