| 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_PROFILER_H_ | 5 #ifndef VM_PROFILER_H_ |
| 6 #define VM_PROFILER_H_ | 6 #define VM_PROFILER_H_ |
| 7 | 7 |
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
| 9 #include "vm/bitfield.h" | 9 #include "vm/bitfield.h" |
| 10 #include "vm/code_observers.h" | 10 #include "vm/code_observers.h" |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 } | 267 } |
| 268 | 268 |
| 269 bool is_allocation_sample() const { | 269 bool is_allocation_sample() const { |
| 270 return ClassAllocationSampleBit::decode(state_); | 270 return ClassAllocationSampleBit::decode(state_); |
| 271 } | 271 } |
| 272 | 272 |
| 273 void set_is_allocation_sample(bool allocation_sample) { | 273 void set_is_allocation_sample(bool allocation_sample) { |
| 274 state_ = ClassAllocationSampleBit::update(allocation_sample, state_); | 274 state_ = ClassAllocationSampleBit::update(allocation_sample, state_); |
| 275 } | 275 } |
| 276 | 276 |
| 277 bool is_mutator_thread() const { |
| 278 return MutatorThreadBit::decode(state_); |
| 279 } |
| 280 |
| 281 void set_is_mutator_thread(bool mutator_thread) { |
| 282 state_ = MutatorThreadBit::update(mutator_thread, state_); |
| 283 } |
| 284 |
| 277 bool is_continuation_sample() const { | 285 bool is_continuation_sample() const { |
| 278 return ContinuationSampleBit::decode(state_); | 286 return ContinuationSampleBit::decode(state_); |
| 279 } | 287 } |
| 280 | 288 |
| 281 void SetContinuationIndex(intptr_t index) { | 289 void SetContinuationIndex(intptr_t index) { |
| 282 ASSERT(!is_continuation_sample()); | 290 ASSERT(!is_continuation_sample()); |
| 283 ASSERT(continuation_index_ == -1); | 291 ASSERT(continuation_index_ == -1); |
| 284 state_ = ContinuationSampleBit::update(true, state_); | 292 state_ = ContinuationSampleBit::update(true, state_); |
| 285 continuation_index_ = index; | 293 continuation_index_ = index; |
| 286 ASSERT(is_continuation_sample()); | 294 ASSERT(is_continuation_sample()); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 331 static intptr_t pcs_length_; | 339 static intptr_t pcs_length_; |
| 332 enum StateBits { | 340 enum StateBits { |
| 333 kHeadSampleBit = 0, | 341 kHeadSampleBit = 0, |
| 334 kLeafFrameIsDartBit = 1, | 342 kLeafFrameIsDartBit = 1, |
| 335 kIgnoreBit = 2, | 343 kIgnoreBit = 2, |
| 336 kExitFrameBit = 3, | 344 kExitFrameBit = 3, |
| 337 kMissingFrameInsertedBit = 4, | 345 kMissingFrameInsertedBit = 4, |
| 338 kTruncatedTraceBit = 5, | 346 kTruncatedTraceBit = 5, |
| 339 kClassAllocationSampleBit = 6, | 347 kClassAllocationSampleBit = 6, |
| 340 kContinuationSampleBit = 7, | 348 kContinuationSampleBit = 7, |
| 349 kMutatorThreadBit = 8, |
| 341 }; | 350 }; |
| 342 class HeadSampleBit : public BitField<uword, bool, kHeadSampleBit, 1> {}; | 351 class HeadSampleBit : public BitField<uword, bool, kHeadSampleBit, 1> {}; |
| 343 class LeafFrameIsDart : | 352 class LeafFrameIsDart : |
| 344 public BitField<uword, bool, kLeafFrameIsDartBit, 1> {}; | 353 public BitField<uword, bool, kLeafFrameIsDartBit, 1> {}; |
| 345 class IgnoreBit : public BitField<uword, bool, kIgnoreBit, 1> {}; | 354 class IgnoreBit : public BitField<uword, bool, kIgnoreBit, 1> {}; |
| 346 class ExitFrameBit : public BitField<uword, bool, kExitFrameBit, 1> {}; | 355 class ExitFrameBit : public BitField<uword, bool, kExitFrameBit, 1> {}; |
| 347 class MissingFrameInsertedBit | 356 class MissingFrameInsertedBit |
| 348 : public BitField<uword, bool, kMissingFrameInsertedBit, 1> {}; | 357 : public BitField<uword, bool, kMissingFrameInsertedBit, 1> {}; |
| 349 class TruncatedTraceBit : | 358 class TruncatedTraceBit : |
| 350 public BitField<uword, bool, kTruncatedTraceBit, 1> {}; | 359 public BitField<uword, bool, kTruncatedTraceBit, 1> {}; |
| 351 class ClassAllocationSampleBit | 360 class ClassAllocationSampleBit |
| 352 : public BitField<uword, bool, kClassAllocationSampleBit, 1> {}; | 361 : public BitField<uword, bool, kClassAllocationSampleBit, 1> {}; |
| 353 class ContinuationSampleBit | 362 class ContinuationSampleBit |
| 354 : public BitField<uword, bool, kContinuationSampleBit, 1> {}; | 363 : public BitField<uword, bool, kContinuationSampleBit, 1> {}; |
| 364 class MutatorThreadBit |
| 365 : public BitField<uword, bool, kMutatorThreadBit, 1> {}; |
| 355 | 366 |
| 356 int64_t timestamp_; | 367 int64_t timestamp_; |
| 357 ThreadId tid_; | 368 ThreadId tid_; |
| 358 Isolate* isolate_; | 369 Isolate* isolate_; |
| 359 uword pc_marker_; | 370 uword pc_marker_; |
| 360 uword stack_buffer_[kStackBufferSizeInWords]; | 371 uword stack_buffer_[kStackBufferSizeInWords]; |
| 361 uword vm_tag_; | 372 uword vm_tag_; |
| 362 uword user_tag_; | 373 uword user_tag_; |
| 363 uword metadata_; | 374 uword metadata_; |
| 364 uword lr_; | 375 uword lr_; |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 private: | 644 private: |
| 634 ZoneGrowableArray<ProcessedSample*> samples_; | 645 ZoneGrowableArray<ProcessedSample*> samples_; |
| 635 CodeLookupTable* code_lookup_table_; | 646 CodeLookupTable* code_lookup_table_; |
| 636 | 647 |
| 637 DISALLOW_COPY_AND_ASSIGN(ProcessedSampleBuffer); | 648 DISALLOW_COPY_AND_ASSIGN(ProcessedSampleBuffer); |
| 638 }; | 649 }; |
| 639 | 650 |
| 640 } // namespace dart | 651 } // namespace dart |
| 641 | 652 |
| 642 #endif // VM_PROFILER_H_ | 653 #endif // VM_PROFILER_H_ |
| OLD | NEW |