OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ | 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ |
6 #define VM_INTERMEDIATE_LANGUAGE_H_ | 6 #define VM_INTERMEDIATE_LANGUAGE_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 #include "vm/ast.h" | 9 #include "vm/ast.h" |
10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
(...skipping 2209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2220 } | 2220 } |
2221 | 2221 |
2222 virtual bool CanDeoptimize() const { return false; } | 2222 virtual bool CanDeoptimize() const { return false; } |
2223 virtual bool CanBecomeDeoptimizationTarget() const { return false; } | 2223 virtual bool CanBecomeDeoptimizationTarget() const { return false; } |
2224 | 2224 |
2225 virtual EffectSet Effects() const { return EffectSet::None(); } | 2225 virtual EffectSet Effects() const { return EffectSet::None(); } |
2226 | 2226 |
2227 virtual void PrintTo(BufferFormatter* f) const; | 2227 virtual void PrintTo(BufferFormatter* f) const; |
2228 | 2228 |
2229 const GrowableObjectArray& offsets() const { return offsets_; } | 2229 const GrowableObjectArray& offsets() const { return offsets_; } |
2230 void SetOffsetCount(Isolate* isolate, intptr_t count) { | 2230 void ComputeOffsetTable(Isolate* isolate); |
2231 if (offsets_.Capacity() < count) { | |
2232 offsets_.Grow(count, Heap::kOld); | |
2233 } | |
2234 if (offsets_.Length() < count) { | |
2235 offsets_.SetLength(count); | |
2236 } | |
2237 } | |
2238 void SetOffsetAt(Isolate* isolate, intptr_t index, intptr_t offset) { | |
2239 offsets_.SetAt(index, Smi::ZoneHandle(isolate, Smi::New(offset))); | |
2240 } | |
2241 | 2231 |
2242 private: | 2232 private: |
2243 GrowableArray<TargetEntryInstr*> successors_; | 2233 GrowableArray<TargetEntryInstr*> successors_; |
2244 GrowableObjectArray& offsets_; | 2234 GrowableObjectArray& offsets_; |
2245 }; | 2235 }; |
2246 | 2236 |
2247 | 2237 |
2248 class ComparisonInstr : public TemplateDefinition<2, NoThrow, Pure> { | 2238 class ComparisonInstr : public TemplateDefinition<2, NoThrow, Pure> { |
2249 public: | 2239 public: |
2250 Value* left() const { return inputs_[0]; } | 2240 Value* left() const { return inputs_[0]; } |
(...skipping 5731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7982 Isolate* isolate, bool opt) const { \ | 7972 Isolate* isolate, bool opt) const { \ |
7983 UNIMPLEMENTED(); \ | 7973 UNIMPLEMENTED(); \ |
7984 return NULL; \ | 7974 return NULL; \ |
7985 } \ | 7975 } \ |
7986 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } | 7976 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } |
7987 | 7977 |
7988 | 7978 |
7989 } // namespace dart | 7979 } // namespace dart |
7990 | 7980 |
7991 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 7981 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
OLD | NEW |