| 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 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 VarList Variables; | 266 VarList Variables; |
| 267 VarList Args; /// subset of Variables, in argument order | 267 VarList Args; /// subset of Variables, in argument order |
| 268 VarList ImplicitArgs; /// subset of Variables | 268 VarList ImplicitArgs; /// subset of Variables |
| 269 std::unique_ptr<ArenaAllocator<>> Allocator; | 269 std::unique_ptr<ArenaAllocator<>> Allocator; |
| 270 std::unique_ptr<Liveness> Live; | 270 std::unique_ptr<Liveness> Live; |
| 271 std::unique_ptr<TargetLowering> Target; | 271 std::unique_ptr<TargetLowering> Target; |
| 272 std::unique_ptr<VariablesMetadata> VMetadata; | 272 std::unique_ptr<VariablesMetadata> VMetadata; |
| 273 std::unique_ptr<Assembler> TargetAssembler; | 273 std::unique_ptr<Assembler> TargetAssembler; |
| 274 /// Globals required by this CFG. Mostly used for the profiler's globals. | 274 /// Globals required by this CFG. Mostly used for the profiler's globals. |
| 275 std::unique_ptr<VariableDeclarationList> GlobalInits; | 275 std::unique_ptr<VariableDeclarationList> GlobalInits; |
| 276 std::vector<InstJumpTable *> JumpTables; | 276 CfgVector<InstJumpTable *> JumpTables; |
| 277 | 277 |
| 278 /// CurrentNode is maintained during dumping/emitting just for validating | 278 /// CurrentNode is maintained during dumping/emitting just for validating |
| 279 /// Variable::DefNode. Normally, a traversal over CfgNodes maintains this, but | 279 /// Variable::DefNode. Normally, a traversal over CfgNodes maintains this, but |
| 280 /// before global operations like register allocation, resetCurrentNode() | 280 /// before global operations like register allocation, resetCurrentNode() |
| 281 /// should be called to avoid spurious validation failures. | 281 /// should be called to avoid spurious validation failures. |
| 282 const CfgNode *CurrentNode = nullptr; | 282 const CfgNode *CurrentNode = nullptr; |
| 283 | 283 |
| 284 /// Maintain a pointer in TLS to the current Cfg being translated. This is | 284 /// Maintain a pointer in TLS to the current Cfg being translated. This is |
| 285 /// primarily for accessing its allocator statelessly, but other uses are | 285 /// primarily for accessing its allocator statelessly, but other uses are |
| 286 /// possible. | 286 /// possible. |
| 287 ICE_TLS_DECLARE_FIELD(const Cfg *, CurrentCfg); | 287 ICE_TLS_DECLARE_FIELD(const Cfg *, CurrentCfg); |
| 288 | 288 |
| 289 public: | 289 public: |
| 290 static void TlsInit() { ICE_TLS_INIT_FIELD(CurrentCfg); } | 290 static void TlsInit() { ICE_TLS_INIT_FIELD(CurrentCfg); } |
| 291 }; | 291 }; |
| 292 | 292 |
| 293 } // end of namespace Ice | 293 } // end of namespace Ice |
| 294 | 294 |
| 295 #endif // SUBZERO_SRC_ICECFG_H | 295 #endif // SUBZERO_SRC_ICECFG_H |
| OLD | NEW |