Chromium Code Reviews| Index: src/compiler/instruction.h |
| diff --git a/src/compiler/instruction.h b/src/compiler/instruction.h |
| index 8d9fdeb652f5409ab04fff469da167a4ccfd0c34..7b357639efd1d66774424c98a6f8f9cdf740ae0c 100644 |
| --- a/src/compiler/instruction.h |
| +++ b/src/compiler/instruction.h |
| @@ -694,6 +694,30 @@ class Constant V8_FINAL { |
| int64_t value_; |
| }; |
| + |
| +class FrameStateDescriptor : public ZoneObject { |
| + public: |
| + FrameStateDescriptor(BailoutId bailout_id, int parameters_count, |
| + int locals_count, int stack_count) |
| + : bailout_id_(bailout_id), |
| + parameters_count_(parameters_count), |
| + locals_count_(locals_count), |
| + stack_count_(stack_count) {} |
| + |
| + BailoutId bailout_id() const { return bailout_id_; } |
| + int parameters_count() { return parameters_count_; } |
| + int locals_count() { return locals_count_; } |
| + int stack_count() { return stack_count_; } |
| + |
| + int size() { return parameters_count_ + locals_count_ + stack_count_; } |
| + |
| + private: |
| + BailoutId bailout_id_; |
| + int parameters_count_; |
| + int locals_count_; |
| + int stack_count_; |
| +}; |
| + |
| OStream& operator<<(OStream& os, const Constant& constant); |
| typedef std::deque<Constant, zone_allocator<Constant> > ConstantDeque; |
| @@ -704,7 +728,8 @@ typedef std::map<int, Constant, std::less<int>, |
| typedef std::deque<Instruction*, zone_allocator<Instruction*> > |
| InstructionDeque; |
| typedef std::deque<PointerMap*, zone_allocator<PointerMap*> > PointerMapDeque; |
| -typedef std::vector<FrameStateDescriptor, zone_allocator<FrameStateDescriptor> > |
| +typedef std::vector<FrameStateDescriptor*, |
|
Benedikt Meurer
2014/08/06 09:41:00
Why store pointers? FrameStateDescriptor is small,
Jarin
2014/08/06 10:05:05
Yeah, at the moment it is four ints. However, with
|
| + zone_allocator<FrameStateDescriptor*> > |
| DeoptimizationVector; |
| @@ -814,8 +839,8 @@ class InstructionSequence V8_FINAL { |
| return immediates_[index]; |
| } |
| - int AddDeoptimizationEntry(const FrameStateDescriptor& descriptor); |
| - FrameStateDescriptor GetDeoptimizationEntry(int deoptimization_id); |
| + int AddDeoptimizationEntry(FrameStateDescriptor* descriptor); |
| + FrameStateDescriptor* GetDeoptimizationEntry(int deoptimization_id); |
| int GetDeoptimizationEntryCount(); |
| private: |