| Index: src/IceTargetLowering.h | 
| diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h | 
| index e602f04638e5e8a936ee9874868b34bf422a0b5b..799872e1648718d6e55829ebd031fdb1e697f300 100644 | 
| --- a/src/IceTargetLowering.h | 
| +++ b/src/IceTargetLowering.h | 
| @@ -152,7 +152,9 @@ class TargetLowering { | 
| TargetLowering &operator=(const TargetLowering &) = delete; | 
|  | 
| public: | 
| -  static void staticInit(TargetArch Target); | 
| +  static void staticInit(const ClFlags &Flags); | 
| +  // Each target must define a public static method: | 
| +  //   static void staticInit(const ClFlags &Flags); | 
|  | 
| static std::unique_ptr<TargetLowering> createLowering(TargetArch Target, | 
| Cfg *Func); | 
| @@ -242,6 +244,8 @@ public: | 
| SizeT makeNextLabelNumber() { return NextLabelNumber++; } | 
| SizeT makeNextJumpTableNumber() { return NextJumpTableNumber++; } | 
| LoweringContext &getContext() { return Context; } | 
| +  Cfg *getFunc() const { return Func; } | 
| +  GlobalContext *getGlobalContext() const { return Ctx; } | 
|  | 
| enum RegSet { | 
| RegSet_None = 0, | 
| @@ -274,15 +278,15 @@ public: | 
|  | 
| virtual void emitVariable(const Variable *Var) const = 0; | 
|  | 
| -  void emitWithoutPrefix(const ConstantRelocatable *CR) const; | 
| -  void emit(const ConstantRelocatable *CR) const; | 
| -  virtual const char *getConstantPrefix() const = 0; | 
| +  void emitWithoutPrefix(const ConstantRelocatable *CR, | 
| +                         const char *Suffix = "") const; | 
|  | 
| -  virtual void emit(const ConstantUndef *C) const = 0; | 
| virtual void emit(const ConstantInteger32 *C) const = 0; | 
| virtual void emit(const ConstantInteger64 *C) const = 0; | 
| virtual void emit(const ConstantFloat *C) const = 0; | 
| virtual void emit(const ConstantDouble *C) const = 0; | 
| +  virtual void emit(const ConstantUndef *C) const = 0; | 
| +  virtual void emit(const ConstantRelocatable *CR) const = 0; | 
|  | 
| /// Performs target-specific argument lowering. | 
| virtual void lowerArguments() = 0; | 
| @@ -423,6 +427,7 @@ protected: | 
| const static constexpr char *H_fptoui_f64_i64 = "__Sz_fptoui_f64_i64"; | 
| const static constexpr char *H_frem_f32 = "fmodf"; | 
| const static constexpr char *H_frem_f64 = "fmod"; | 
| +  const static constexpr char *H_getIP_prefix = "__Sz_getIP_"; | 
| const static constexpr char *H_sdiv_i32 = "__divsi3"; | 
| const static constexpr char *H_sdiv_i64 = "__divdi3"; | 
| const static constexpr char *H_sitofp_i64_f32 = "__Sz_sitofp_i64_f32"; | 
|  |