| Index: src/assembler.h
 | 
| diff --git a/src/assembler.h b/src/assembler.h
 | 
| index dcb83ed68b39b69485f63e2b27c6e17029875739..37963c4c393794c07424c44832855ecd51b19f37 100644
 | 
| --- a/src/assembler.h
 | 
| +++ b/src/assembler.h
 | 
| @@ -162,8 +162,10 @@ public:
 | 
|    // Returns the position in the instruction stream.
 | 
|    intptr_t GetPosition() const { return cursor_ - contents_; }
 | 
|  
 | 
| -  // For bringup only.
 | 
| -  AssemblerFixup *GetLatestFixup(intptr_t position) const;
 | 
| +  // List of pool-allocated fixups.
 | 
| +  typedef std::vector<AssemblerFixup *> FixupList;
 | 
| +  FixupList::const_iterator fixups_begin() const { return fixups_.begin(); }
 | 
| +  FixupList::const_iterator fixups_end() const { return fixups_.end(); }
 | 
|  
 | 
|  private:
 | 
|    // The limit is set to kMinimumGap bytes before the end of the data area.
 | 
| @@ -175,7 +177,7 @@ private:
 | 
|    uintptr_t cursor_;
 | 
|    uintptr_t limit_;
 | 
|    Assembler &assembler_;
 | 
| -  std::vector<AssemblerFixup *> fixups_;
 | 
| +  FixupList fixups_;
 | 
|  #ifndef NDEBUG
 | 
|    bool fixups_processed_;
 | 
|  #endif // !NDEBUG
 | 
| @@ -206,7 +208,7 @@ class Assembler {
 | 
|    Assembler &operator=(const Assembler &) = delete;
 | 
|  
 | 
|  public:
 | 
| -  Assembler() {}
 | 
| +  Assembler() : buffer_(*this) {}
 | 
|    virtual ~Assembler() {}
 | 
|  
 | 
|    // Allocate a chunk of bytes using the per-Assembler allocator.
 | 
| @@ -226,8 +228,13 @@ public:
 | 
|  
 | 
|    virtual void BindCfgNodeLabel(SizeT NodeNumber) = 0;
 | 
|  
 | 
| +  void emitIASBytes(GlobalContext *Ctx) const;
 | 
| +
 | 
|  private:
 | 
|    llvm::BumpPtrAllocator Allocator;
 | 
| +
 | 
| +protected:
 | 
| +  AssemblerBuffer buffer_;
 | 
|  };
 | 
|  
 | 
|  } // end of namespace Ice
 | 
| 
 |