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

Side by Side Diff: src/objects-inl.h

Issue 2451853002: Uniform and precise source positions for inlining (Closed)
Patch Set: addressed comments Created 4 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 3370 matching lines...) Expand 10 before | Expand all | Expand 10 after
3381 CAST_ACCESSOR(Symbol) 3381 CAST_ACCESSOR(Symbol)
3382 CAST_ACCESSOR(TemplateInfo) 3382 CAST_ACCESSOR(TemplateInfo)
3383 CAST_ACCESSOR(Uint16x8) 3383 CAST_ACCESSOR(Uint16x8)
3384 CAST_ACCESSOR(Uint32x4) 3384 CAST_ACCESSOR(Uint32x4)
3385 CAST_ACCESSOR(Uint8x16) 3385 CAST_ACCESSOR(Uint8x16)
3386 CAST_ACCESSOR(UnseededNumberDictionary) 3386 CAST_ACCESSOR(UnseededNumberDictionary)
3387 CAST_ACCESSOR(WeakCell) 3387 CAST_ACCESSOR(WeakCell)
3388 CAST_ACCESSOR(WeakFixedArray) 3388 CAST_ACCESSOR(WeakFixedArray)
3389 CAST_ACCESSOR(WeakHashTable) 3389 CAST_ACCESSOR(WeakHashTable)
3390 3390
3391 template <class T>
3392 PodArray<T>* PodArray<T>::cast(Object* object) {
3393 SLOW_DCHECK(object->IsByteArray());
3394 return reinterpret_cast<PodArray<T>*>(object);
3395 }
3396 template <class T>
3397 const PodArray<T>* PodArray<T>::cast(const Object* object) {
3398 SLOW_DCHECK(object->IsByteArray());
3399 return reinterpret_cast<const PodArray<T>*>(object);
3400 }
3401
3402 // static
3403 template <class T>
3404 Handle<PodArray<T>> PodArray<T>::New(Isolate* isolate, int length,
3405 PretenureFlag pretenure) {
3406 return Handle<PodArray<T>>::cast(
3407 isolate->factory()->NewByteArray(length * sizeof(T), pretenure));
3408 }
3391 3409
3392 // static 3410 // static
3393 template <class Traits> 3411 template <class Traits>
3394 STATIC_CONST_MEMBER_DEFINITION const InstanceType 3412 STATIC_CONST_MEMBER_DEFINITION const InstanceType
3395 FixedTypedArray<Traits>::kInstanceType; 3413 FixedTypedArray<Traits>::kInstanceType;
3396 3414
3397 3415
3398 template <class Traits> 3416 template <class Traits>
3399 FixedTypedArray<Traits>* FixedTypedArray<Traits>::cast(Object* object) { 3417 FixedTypedArray<Traits>* FixedTypedArray<Traits>::cast(Object* object) {
3400 SLOW_DCHECK(object->IsHeapObject() && 3418 SLOW_DCHECK(object->IsHeapObject() &&
(...skipping 22 matching lines...) Expand all
3423 } 3441 }
3424 3442
3425 DEFINE_DEOPT_ELEMENT_ACCESSORS(TranslationByteArray, ByteArray) 3443 DEFINE_DEOPT_ELEMENT_ACCESSORS(TranslationByteArray, ByteArray)
3426 DEFINE_DEOPT_ELEMENT_ACCESSORS(InlinedFunctionCount, Smi) 3444 DEFINE_DEOPT_ELEMENT_ACCESSORS(InlinedFunctionCount, Smi)
3427 DEFINE_DEOPT_ELEMENT_ACCESSORS(LiteralArray, FixedArray) 3445 DEFINE_DEOPT_ELEMENT_ACCESSORS(LiteralArray, FixedArray)
3428 DEFINE_DEOPT_ELEMENT_ACCESSORS(OsrAstId, Smi) 3446 DEFINE_DEOPT_ELEMENT_ACCESSORS(OsrAstId, Smi)
3429 DEFINE_DEOPT_ELEMENT_ACCESSORS(OsrPcOffset, Smi) 3447 DEFINE_DEOPT_ELEMENT_ACCESSORS(OsrPcOffset, Smi)
3430 DEFINE_DEOPT_ELEMENT_ACCESSORS(OptimizationId, Smi) 3448 DEFINE_DEOPT_ELEMENT_ACCESSORS(OptimizationId, Smi)
3431 DEFINE_DEOPT_ELEMENT_ACCESSORS(SharedFunctionInfo, Object) 3449 DEFINE_DEOPT_ELEMENT_ACCESSORS(SharedFunctionInfo, Object)
3432 DEFINE_DEOPT_ELEMENT_ACCESSORS(WeakCellCache, Object) 3450 DEFINE_DEOPT_ELEMENT_ACCESSORS(WeakCellCache, Object)
3451 DEFINE_DEOPT_ELEMENT_ACCESSORS(InliningPositions, PodArray<InliningPosition>)
3433 3452
3434 #undef DEFINE_DEOPT_ELEMENT_ACCESSORS 3453 #undef DEFINE_DEOPT_ELEMENT_ACCESSORS
3435 3454
3436 3455
3437 #define DEFINE_DEOPT_ENTRY_ACCESSORS(name, type) \ 3456 #define DEFINE_DEOPT_ENTRY_ACCESSORS(name, type) \
3438 type* DeoptimizationInputData::name(int i) { \ 3457 type* DeoptimizationInputData::name(int i) { \
3439 return type::cast(get(IndexForEntry(i) + k##name##Offset)); \ 3458 return type::cast(get(IndexForEntry(i) + k##name##Offset)); \
3440 } \ 3459 } \
3441 void DeoptimizationInputData::Set##name(int i, type* value) { \ 3460 void DeoptimizationInputData::Set##name(int i, type* value) { \
3442 set(IndexForEntry(i) + k##name##Offset, value); \ 3461 set(IndexForEntry(i) + k##name##Offset, value); \
(...skipping 4988 matching lines...) Expand 10 before | Expand all | Expand 10 after
8431 #undef WRITE_INT64_FIELD 8450 #undef WRITE_INT64_FIELD
8432 #undef READ_BYTE_FIELD 8451 #undef READ_BYTE_FIELD
8433 #undef WRITE_BYTE_FIELD 8452 #undef WRITE_BYTE_FIELD
8434 #undef NOBARRIER_READ_BYTE_FIELD 8453 #undef NOBARRIER_READ_BYTE_FIELD
8435 #undef NOBARRIER_WRITE_BYTE_FIELD 8454 #undef NOBARRIER_WRITE_BYTE_FIELD
8436 8455
8437 } // namespace internal 8456 } // namespace internal
8438 } // namespace v8 8457 } // namespace v8
8439 8458
8440 #endif // V8_OBJECTS_INL_H_ 8459 #endif // V8_OBJECTS_INL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698