Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: runtime/vm/intermediate_language.h

Issue 722243002: Indirectly dispatch all backtracking jumps through the same block. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: const Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698