| OLD | NEW | 
|---|
| 1 //===- subzero/src/IceTargetLowering.h - Lowering interface -----*- C++ -*-===// | 1 //===- subzero/src/IceTargetLowering.h - Lowering interface -----*- 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 // This file declares the TargetLowering and LoweringContext | 10 // This file declares the TargetLowering and LoweringContext | 
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 74   // instructions come between the two points. | 74   // instructions come between the two points. | 
| 75   InstList::iterator Next; | 75   InstList::iterator Next; | 
| 76   // Begin is a copy of Insts.begin(), used if iterators are moved backward. | 76   // Begin is a copy of Insts.begin(), used if iterators are moved backward. | 
| 77   InstList::iterator Begin; | 77   InstList::iterator Begin; | 
| 78   // End is a copy of Insts.end(), used if Next needs to be advanced. | 78   // End is a copy of Insts.end(), used if Next needs to be advanced. | 
| 79   InstList::iterator End; | 79   InstList::iterator End; | 
| 80 | 80 | 
| 81   void skipDeleted(InstList::iterator &I) const; | 81   void skipDeleted(InstList::iterator &I) const; | 
| 82   void advanceForward(InstList::iterator &I) const; | 82   void advanceForward(InstList::iterator &I) const; | 
| 83   void advanceBackward(InstList::iterator &I) const; | 83   void advanceBackward(InstList::iterator &I) const; | 
| 84   LoweringContext(const LoweringContext &) LLVM_DELETED_FUNCTION; | 84   LoweringContext(const LoweringContext &) = delete; | 
| 85   LoweringContext &operator=(const LoweringContext &) LLVM_DELETED_FUNCTION; | 85   LoweringContext &operator=(const LoweringContext &) = delete; | 
| 86 }; | 86 }; | 
| 87 | 87 | 
| 88 class TargetLowering { | 88 class TargetLowering { | 
| 89 public: | 89 public: | 
| 90   static TargetLowering *createLowering(TargetArch Target, Cfg *Func); | 90   static TargetLowering *createLowering(TargetArch Target, Cfg *Func); | 
| 91   static Assembler *createAssembler(TargetArch Target, Cfg *Func); | 91   static Assembler *createAssembler(TargetArch Target, Cfg *Func); | 
| 92   void translate() { | 92   void translate() { | 
| 93     switch (Ctx->getOptLevel()) { | 93     switch (Ctx->getOptLevel()) { | 
| 94     case Opt_m1: | 94     case Opt_m1: | 
| 95       translateOm1(); | 95       translateOm1(); | 
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 223   Cfg *Func; | 223   Cfg *Func; | 
| 224   GlobalContext *Ctx; | 224   GlobalContext *Ctx; | 
| 225   bool HasComputedFrame; | 225   bool HasComputedFrame; | 
| 226   bool CallsReturnsTwice; | 226   bool CallsReturnsTwice; | 
| 227   // StackAdjustment keeps track of the current stack offset from its | 227   // StackAdjustment keeps track of the current stack offset from its | 
| 228   // natural location, as arguments are pushed for a function call. | 228   // natural location, as arguments are pushed for a function call. | 
| 229   int32_t StackAdjustment; | 229   int32_t StackAdjustment; | 
| 230   LoweringContext Context; | 230   LoweringContext Context; | 
| 231 | 231 | 
| 232 private: | 232 private: | 
| 233   TargetLowering(const TargetLowering &) LLVM_DELETED_FUNCTION; | 233   TargetLowering(const TargetLowering &) = delete; | 
| 234   TargetLowering &operator=(const TargetLowering &) LLVM_DELETED_FUNCTION; | 234   TargetLowering &operator=(const TargetLowering &) = delete; | 
| 235 }; | 235 }; | 
| 236 | 236 | 
| 237 // TargetGlobalInitLowering is used for "lowering" global | 237 // TargetGlobalInitLowering is used for "lowering" global | 
| 238 // initializers.  It is separated out from TargetLowering because it | 238 // initializers.  It is separated out from TargetLowering because it | 
| 239 // does not require a Cfg. | 239 // does not require a Cfg. | 
| 240 class TargetGlobalInitLowering { | 240 class TargetGlobalInitLowering { | 
| 241 public: | 241 public: | 
| 242   static TargetGlobalInitLowering *createLowering(TargetArch Target, | 242   static TargetGlobalInitLowering *createLowering(TargetArch Target, | 
| 243                                                   GlobalContext *Ctx); | 243                                                   GlobalContext *Ctx); | 
| 244   virtual ~TargetGlobalInitLowering(); | 244   virtual ~TargetGlobalInitLowering(); | 
| 245 | 245 | 
| 246   // TODO: Allow relocations to be represented as part of the Data. | 246   // TODO: Allow relocations to be represented as part of the Data. | 
| 247   virtual void lower(const IceString &Name, SizeT Align, bool IsInternal, | 247   virtual void lower(const IceString &Name, SizeT Align, bool IsInternal, | 
| 248                      bool IsConst, bool IsZeroInitializer, SizeT Size, | 248                      bool IsConst, bool IsZeroInitializer, SizeT Size, | 
| 249                      const char *Data, bool DisableTranslation) = 0; | 249                      const char *Data, bool DisableTranslation) = 0; | 
| 250 | 250 | 
| 251 protected: | 251 protected: | 
| 252   TargetGlobalInitLowering(GlobalContext *Ctx) : Ctx(Ctx) {} | 252   TargetGlobalInitLowering(GlobalContext *Ctx) : Ctx(Ctx) {} | 
| 253   GlobalContext *Ctx; | 253   GlobalContext *Ctx; | 
| 254 | 254 | 
| 255 private: | 255 private: | 
| 256   TargetGlobalInitLowering(const TargetGlobalInitLowering &) | 256   TargetGlobalInitLowering(const TargetGlobalInitLowering &) = delete; | 
| 257   LLVM_DELETED_FUNCTION; | 257   TargetGlobalInitLowering &operator=(const TargetGlobalInitLowering &) = | 
| 258   TargetGlobalInitLowering & | 258       delete; | 
| 259   operator=(const TargetGlobalInitLowering &) LLVM_DELETED_FUNCTION; |  | 
| 260 }; | 259 }; | 
| 261 | 260 | 
| 262 } // end of namespace Ice | 261 } // end of namespace Ice | 
| 263 | 262 | 
| 264 #endif // SUBZERO_SRC_ICETARGETLOWERING_H | 263 #endif // SUBZERO_SRC_ICETARGETLOWERING_H | 
| OLD | NEW | 
|---|