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

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

Issue 10831261: Build and use stack maps in the SSA compiler. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 4 months 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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_OBJECT_H_ 5 #ifndef VM_OBJECT_H_
6 #define VM_OBJECT_H_ 6 #define VM_OBJECT_H_
7 7
8 #include "include/dart_api.h" 8 #include "include/dart_api.h"
9 #include "platform/assert.h" 9 #include "platform/assert.h"
10 #include "platform/utils.h" 10 #include "platform/utils.h"
(...skipping 2216 matching lines...) Expand 10 before | Expand all | Expand 10 after
2227 ASSERT(0 <= len && len <= kMaxElements); 2227 ASSERT(0 <= len && len <= kMaxElements);
2228 return RoundedAllocationSize( 2228 return RoundedAllocationSize(
2229 sizeof(RawPcDescriptors) + (len * kBytesPerElement)); 2229 sizeof(RawPcDescriptors) + (len * kBytesPerElement));
2230 } 2230 }
2231 2231
2232 static RawPcDescriptors* New(intptr_t num_descriptors); 2232 static RawPcDescriptors* New(intptr_t num_descriptors);
2233 2233
2234 // Verify (assert) assumptions about pc descriptors in debug mode. 2234 // Verify (assert) assumptions about pc descriptors in debug mode.
2235 void Verify(bool check_ids) const; 2235 void Verify(bool check_ids) const;
2236 2236
2237 static void PrintHeaderString();
2238
2237 // We would have a VisitPointers function here to traverse the 2239 // We would have a VisitPointers function here to traverse the
2238 // pc descriptors table to visit objects if any in the table. 2240 // pc descriptors table to visit objects if any in the table.
2239 2241
2240 private: 2242 private:
2241 void SetPC(intptr_t index, uword value) const; 2243 void SetPC(intptr_t index, uword value) const;
2242 void SetKind(intptr_t index, PcDescriptors::Kind kind) const; 2244 void SetKind(intptr_t index, PcDescriptors::Kind kind) const;
2243 void SetDeoptId(intptr_t index, intptr_t value) const; 2245 void SetDeoptId(intptr_t index, intptr_t value) const;
2244 void SetTokenPos(intptr_t index, intptr_t value) const; 2246 void SetTokenPos(intptr_t index, intptr_t value) const;
2245 void SetTryIndex(intptr_t index, intptr_t value) const; 2247 void SetTryIndex(intptr_t index, intptr_t value) const;
2246 2248
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
2440 } 2442 }
2441 intptr_t pointer_offsets_length() const { 2443 intptr_t pointer_offsets_length() const {
2442 return raw_ptr()->pointer_offsets_length_; 2444 return raw_ptr()->pointer_offsets_length_;
2443 } 2445 }
2444 bool is_optimized() const { 2446 bool is_optimized() const {
2445 return (raw_ptr()->is_optimized_ == 1); 2447 return (raw_ptr()->is_optimized_ == 1);
2446 } 2448 }
2447 void set_is_optimized(bool value) const { 2449 void set_is_optimized(bool value) const {
2448 raw_ptr()->is_optimized_ = value ? 1 : 0; 2450 raw_ptr()->is_optimized_ = value ? 1 : 0;
2449 } 2451 }
2452 intptr_t spill_slot_count() const {
2453 return raw_ptr()->spill_slot_count_;
2454 }
2455 void set_spill_slot_count(intptr_t count) const {
srdjan 2012/08/10 23:11:05 ASSERT(is_optimized()) ?
Kevin Millikin (Google) 2012/08/13 15:10:37 Hmmm. It's called for unoptimized code to set it
2456 raw_ptr()->spill_slot_count_ = count;
2457 }
2458
2450 uword EntryPoint() const { 2459 uword EntryPoint() const {
2451 const Instructions& instr = Instructions::Handle(instructions()); 2460 const Instructions& instr = Instructions::Handle(instructions());
2452 return instr.EntryPoint(); 2461 return instr.EntryPoint();
2453 } 2462 }
2454 intptr_t Size() const { 2463 intptr_t Size() const {
2455 const Instructions& instr = Instructions::Handle(instructions()); 2464 const Instructions& instr = Instructions::Handle(instructions());
2456 return instr.size(); 2465 return instr.size();
2457 } 2466 }
2458 2467
2459 RawPcDescriptors* pc_descriptors() const { 2468 RawPcDescriptors* pc_descriptors() const {
(...skipping 2959 matching lines...) Expand 10 before | Expand all | Expand 10 after
5419 if (this->CharAt(i) != str.CharAt(begin_index + i)) { 5428 if (this->CharAt(i) != str.CharAt(begin_index + i)) {
5420 return false; 5429 return false;
5421 } 5430 }
5422 } 5431 }
5423 return true; 5432 return true;
5424 } 5433 }
5425 5434
5426 } // namespace dart 5435 } // namespace dart
5427 5436
5428 #endif // VM_OBJECT_H_ 5437 #endif // VM_OBJECT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698