| Index: src/interpreter/bytecode-register-allocator.h
 | 
| diff --git a/src/compiler/type-hint-analyzer.h b/src/interpreter/bytecode-register-allocator.h
 | 
| similarity index 23%
 | 
| copy from src/compiler/type-hint-analyzer.h
 | 
| copy to src/interpreter/bytecode-register-allocator.h
 | 
| index 1a799056335bd5994084affe7e8c858b4884221b..74ab3a42727119c907a05e400b07d1af483a817b 100644
 | 
| --- a/src/compiler/type-hint-analyzer.h
 | 
| +++ b/src/interpreter/bytecode-register-allocator.h
 | 
| @@ -2,50 +2,48 @@
 | 
|  // Use of this source code is governed by a BSD-style license that can be
 | 
|  // found in the LICENSE file.
 | 
|  
 | 
| -#ifndef V8_COMPILER_TYPE_HINT_ANALYZER_H_
 | 
| -#define V8_COMPILER_TYPE_HINT_ANALYZER_H_
 | 
| +#ifndef V8_INTERPRETER_BYTECODE_REGISTER_ALLOCATOR_H_
 | 
| +#define V8_INTERPRETER_BYTECODE_REGISTER_ALLOCATOR_H_
 | 
|  
 | 
| -#include "src/compiler/type-hints.h"
 | 
| -#include "src/handles.h"
 | 
|  #include "src/zone-containers.h"
 | 
|  
 | 
|  namespace v8 {
 | 
|  namespace internal {
 | 
| -namespace compiler {
 | 
| +namespace interpreter {
 | 
|  
 | 
| -// The result of analyzing type hints.
 | 
| -class TypeHintAnalysis final : public ZoneObject {
 | 
| - public:
 | 
| -  typedef ZoneMap<TypeFeedbackId, Handle<Code>> Infos;
 | 
| -
 | 
| -  explicit TypeHintAnalysis(Infos const& infos) : infos_(infos) {}
 | 
| +class BytecodeArrayBuilder;
 | 
| +class Register;
 | 
|  
 | 
| -  bool GetBinaryOperationHints(TypeFeedbackId id,
 | 
| -                               BinaryOperationHints* hints) const;
 | 
| -  bool GetToBooleanHints(TypeFeedbackId id, ToBooleanHints* hints) const;
 | 
| -
 | 
| - private:
 | 
| -  Infos const infos_;
 | 
| -};
 | 
| +// A class than allows the instantiator to allocate temporary registers that are
 | 
| +// cleaned up when scope is closed.
 | 
| +class BytecodeRegisterAllocator {
 | 
| + public:
 | 
| +  explicit BytecodeRegisterAllocator(BytecodeArrayBuilder* builder);
 | 
| +  ~BytecodeRegisterAllocator();
 | 
| +  Register NewRegister();
 | 
|  
 | 
| +  void PrepareForConsecutiveAllocations(size_t count);
 | 
| +  Register NextConsecutiveRegister();
 | 
|  
 | 
| -// The class that performs type hint analysis on the fullcodegen code object.
 | 
| -class TypeHintAnalyzer final {
 | 
| - public:
 | 
| -  explicit TypeHintAnalyzer(Zone* zone) : zone_(zone) {}
 | 
| +  bool RegisterIsAllocatedInThisScope(Register reg) const;
 | 
|  
 | 
| -  TypeHintAnalysis* Analyze(Handle<Code> code);
 | 
| +  bool HasConsecutiveAllocations() const { return next_consecutive_count_ > 0; }
 | 
|  
 | 
|   private:
 | 
| -  Zone* zone() const { return zone_; }
 | 
| +  void* operator new(size_t size);
 | 
| +  void operator delete(void* p);
 | 
|  
 | 
| -  Zone* const zone_;
 | 
| +  BytecodeArrayBuilder* builder_;
 | 
| +  ZoneVector<int> allocated_;
 | 
| +  int next_consecutive_register_;
 | 
| +  int next_consecutive_count_;
 | 
|  
 | 
| -  DISALLOW_COPY_AND_ASSIGN(TypeHintAnalyzer);
 | 
| +  DISALLOW_COPY_AND_ASSIGN(BytecodeRegisterAllocator);
 | 
|  };
 | 
|  
 | 
| -}  // namespace compiler
 | 
| +}  // namespace interpreter
 | 
|  }  // namespace internal
 | 
|  }  // namespace v8
 | 
|  
 | 
| -#endif  // V8_COMPILER_TYPE_HINT_ANALYZER_H_
 | 
| +
 | 
| +#endif  // V8_INTERPRETER_BYTECODE_REGISTER_ALLOCATOR_H_
 | 
| 
 |