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

Side by Side Diff: src/objects.h

Issue 19383002: Make deoptimization stress count global. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 5 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 6130 matching lines...) Expand 10 before | Expand all | Expand 10 after
6141 DECL_BOOLEAN_ACCESSORS(is_toplevel) 6141 DECL_BOOLEAN_ACCESSORS(is_toplevel)
6142 6142
6143 // Bit field containing various information collected by the compiler to 6143 // Bit field containing various information collected by the compiler to
6144 // drive optimization. 6144 // drive optimization.
6145 inline int compiler_hints(); 6145 inline int compiler_hints();
6146 inline void set_compiler_hints(int value); 6146 inline void set_compiler_hints(int value);
6147 6147
6148 inline int ast_node_count(); 6148 inline int ast_node_count();
6149 inline void set_ast_node_count(int count); 6149 inline void set_ast_node_count(int count);
6150 6150
6151 // A counter used to determine when to stress the deoptimizer with a
6152 // deopt.
6153 inline int stress_deopt_counter();
6154 inline void set_stress_deopt_counter(int counter);
6155
6156 inline int profiler_ticks(); 6151 inline int profiler_ticks();
6157 6152
6158 // Inline cache age is used to infer whether the function survived a context 6153 // Inline cache age is used to infer whether the function survived a context
6159 // disposal or not. In the former case we reset the opt_count. 6154 // disposal or not. In the former case we reset the opt_count.
6160 inline int ic_age(); 6155 inline int ic_age();
6161 inline void set_ic_age(int age); 6156 inline void set_ic_age(int age);
6162 6157
6163 // Indicates if this function can be lazy compiled. 6158 // Indicates if this function can be lazy compiled.
6164 // This is used to determine if we can safely flush code from a function 6159 // This is used to determine if we can safely flush code from a function
6165 // when doing GC if we expect that the function will no longer be used. 6160 // when doing GC if we expect that the function will no longer be used.
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
6337 static const int kStartPositionAndTypeOffset = 6332 static const int kStartPositionAndTypeOffset =
6338 kNumLiteralsOffset + kPointerSize; 6333 kNumLiteralsOffset + kPointerSize;
6339 static const int kEndPositionOffset = 6334 static const int kEndPositionOffset =
6340 kStartPositionAndTypeOffset + kPointerSize; 6335 kStartPositionAndTypeOffset + kPointerSize;
6341 static const int kFunctionTokenPositionOffset = 6336 static const int kFunctionTokenPositionOffset =
6342 kEndPositionOffset + kPointerSize; 6337 kEndPositionOffset + kPointerSize;
6343 static const int kCompilerHintsOffset = 6338 static const int kCompilerHintsOffset =
6344 kFunctionTokenPositionOffset + kPointerSize; 6339 kFunctionTokenPositionOffset + kPointerSize;
6345 static const int kOptCountOffset = kCompilerHintsOffset + kPointerSize; 6340 static const int kOptCountOffset = kCompilerHintsOffset + kPointerSize;
6346 static const int kCountersOffset = kOptCountOffset + kPointerSize; 6341 static const int kCountersOffset = kOptCountOffset + kPointerSize;
6347 static const int kStressDeoptCounterOffset = kCountersOffset + kPointerSize;
6348 6342
6349 // Total size. 6343 // Total size.
6350 static const int kSize = kStressDeoptCounterOffset + kPointerSize; 6344 static const int kSize = kCountersOffset + kPointerSize;
6351 #else 6345 #else
6352 // The only reason to use smi fields instead of int fields 6346 // The only reason to use smi fields instead of int fields
6353 // is to allow iteration without maps decoding during 6347 // is to allow iteration without maps decoding during
6354 // garbage collections. 6348 // garbage collections.
6355 // To avoid wasting space on 64-bit architectures we use 6349 // To avoid wasting space on 64-bit architectures we use
6356 // the following trick: we group integer fields into pairs 6350 // the following trick: we group integer fields into pairs
6357 // First integer in each pair is shifted left by 1. 6351 // First integer in each pair is shifted left by 1.
6358 // By doing this we guarantee that LSB of each kPointerSize aligned 6352 // By doing this we guarantee that LSB of each kPointerSize aligned
6359 // word is not set and thus this word cannot be treated as pointer 6353 // word is not set and thus this word cannot be treated as pointer
6360 // to HeapObject during old space traversal. 6354 // to HeapObject during old space traversal.
(...skipping 13 matching lines...) Expand all
6374 kEndPositionOffset + kIntSize; 6368 kEndPositionOffset + kIntSize;
6375 6369
6376 static const int kFunctionTokenPositionOffset = 6370 static const int kFunctionTokenPositionOffset =
6377 kStartPositionAndTypeOffset + kIntSize; 6371 kStartPositionAndTypeOffset + kIntSize;
6378 static const int kCompilerHintsOffset = 6372 static const int kCompilerHintsOffset =
6379 kFunctionTokenPositionOffset + kIntSize; 6373 kFunctionTokenPositionOffset + kIntSize;
6380 6374
6381 static const int kOptCountOffset = kCompilerHintsOffset + kIntSize; 6375 static const int kOptCountOffset = kCompilerHintsOffset + kIntSize;
6382 6376
6383 static const int kCountersOffset = kOptCountOffset + kIntSize; 6377 static const int kCountersOffset = kOptCountOffset + kIntSize;
6384 static const int kStressDeoptCounterOffset = kCountersOffset + kIntSize;
6385 6378
6386 // Total size. 6379 // Total size.
6387 static const int kSize = kStressDeoptCounterOffset + kIntSize; 6380 static const int kSize = kCountersOffset + kIntSize;
6388 6381
6389 #endif 6382 #endif
6390 6383
6391 // The construction counter for inobject slack tracking is stored in the 6384 // The construction counter for inobject slack tracking is stored in the
6392 // most significant byte of compiler_hints which is otherwise unused. 6385 // most significant byte of compiler_hints which is otherwise unused.
6393 // Its offset depends on the endian-ness of the architecture. 6386 // Its offset depends on the endian-ness of the architecture.
6394 #if __BYTE_ORDER == __LITTLE_ENDIAN 6387 #if __BYTE_ORDER == __LITTLE_ENDIAN
6395 static const int kConstructionCountOffset = kCompilerHintsOffset + 3; 6388 static const int kConstructionCountOffset = kCompilerHintsOffset + 3;
6396 #elif __BYTE_ORDER == __BIG_ENDIAN 6389 #elif __BYTE_ORDER == __BIG_ENDIAN
6397 static const int kConstructionCountOffset = kCompilerHintsOffset + 0; 6390 static const int kConstructionCountOffset = kCompilerHintsOffset + 0;
(...skipping 3421 matching lines...) Expand 10 before | Expand all | Expand 10 after
9819 } else { 9812 } else {
9820 value &= ~(1 << bit_position); 9813 value &= ~(1 << bit_position);
9821 } 9814 }
9822 return value; 9815 return value;
9823 } 9816 }
9824 }; 9817 };
9825 9818
9826 } } // namespace v8::internal 9819 } } // namespace v8::internal
9827 9820
9828 #endif // V8_OBJECTS_H_ 9821 #endif // V8_OBJECTS_H_
OLDNEW
« src/isolate.cc ('K') | « src/isolate.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698