| 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 167 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  178   /// Returns true if Var is a global variable that is used by the profiling |  178   /// Returns true if Var is a global variable that is used by the profiling | 
|  179   /// code. |  179   /// code. | 
|  180   static bool isProfileGlobal(const VariableDeclaration &Var); |  180   static bool isProfileGlobal(const VariableDeclaration &Var); | 
|  181  |  181  | 
|  182   /// Passes over the CFG. |  182   /// Passes over the CFG. | 
|  183   void translate(); |  183   void translate(); | 
|  184   /// After the CFG is fully constructed, iterate over the nodes and compute the |  184   /// After the CFG is fully constructed, iterate over the nodes and compute the | 
|  185   /// predecessor and successor edges, in the form of CfgNode::InEdges[] and |  185   /// predecessor and successor edges, in the form of CfgNode::InEdges[] and | 
|  186   /// CfgNode::OutEdges[]. |  186   /// CfgNode::OutEdges[]. | 
|  187   void computeInOutEdges(); |  187   void computeInOutEdges(); | 
 |  188   /// Renumber the non-deleted instructions in the Cfg.  This needs to be done | 
 |  189   /// in preparation for live range analysis.  The instruction numbers in a | 
 |  190   /// block must be monotonically increasing.  The range of instruction numbers | 
 |  191   /// in a block, from lowest to highest, must not overlap with the range of any | 
 |  192   /// other block. | 
 |  193   /// | 
 |  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. | 
|  188   void renumberInstructions(); |  196   void renumberInstructions(); | 
|  189   void placePhiLoads(); |  197   void placePhiLoads(); | 
|  190   void placePhiStores(); |  198   void placePhiStores(); | 
|  191   void deletePhis(); |  199   void deletePhis(); | 
|  192   void advancedPhiLowering(); |  200   void advancedPhiLowering(); | 
|  193   void reorderNodes(); |  201   void reorderNodes(); | 
|  194   void shuffleNodes(); |  202   void shuffleNodes(); | 
|  195  |  203  | 
|  196   /// 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. | 
|  197   /// If SortAndCombine == true, merge all the fixed-size allocas in the |  205   /// If SortAndCombine == true, merge all the fixed-size allocas in the | 
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  311  |  319  | 
|  312 public: |  320 public: | 
|  313   static void TlsInit() { CfgAllocatorTraits::init(); } |  321   static void TlsInit() { CfgAllocatorTraits::init(); } | 
|  314 }; |  322 }; | 
|  315  |  323  | 
|  316 template <> Variable *Cfg::makeVariable<Variable>(Type Ty); |  324 template <> Variable *Cfg::makeVariable<Variable>(Type Ty); | 
|  317  |  325  | 
|  318 } // end of namespace Ice |  326 } // end of namespace Ice | 
|  319  |  327  | 
|  320 #endif // SUBZERO_SRC_ICECFG_H |  328 #endif // SUBZERO_SRC_ICECFG_H | 
| OLD | NEW |