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

Side by Side Diff: src/compiler/access-builder.cc

Issue 2305573003: [Turbofan] Remove more Type representation dimension data. (Closed)
Patch Set: Created 4 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 #include "src/compiler/access-builder.h" 5 #include "src/compiler/access-builder.h"
6 6
7 #include "src/compiler/type-cache.h" 7 #include "src/compiler/type-cache.h"
8 #include "src/contexts.h" 8 #include "src/contexts.h"
9 #include "src/frames.h" 9 #include "src/frames.h"
10 #include "src/handles-inl.h" 10 #include "src/handles-inl.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 } 61 }
62 62
63 63
64 // static 64 // static
65 FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map, 65 FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map,
66 int index) { 66 int index) {
67 int const offset = map->GetInObjectPropertyOffset(index); 67 int const offset = map->GetInObjectPropertyOffset(index);
68 FieldAccess access = {kTaggedBase, 68 FieldAccess access = {kTaggedBase,
69 offset, 69 offset,
70 MaybeHandle<Name>(), 70 MaybeHandle<Name>(),
71 Type::Tagged(), 71 Type::Any(),
Benedikt Meurer 2016/09/02 07:31:30 Change this to Type::NonInternal()
mvstanton 2016/09/02 08:03:56 Done.
72 MachineType::AnyTagged(), 72 MachineType::AnyTagged(),
73 kFullWriteBarrier}; 73 kFullWriteBarrier};
74 return access; 74 return access;
75 } 75 }
76 76
77 77
78 // static 78 // static
79 FieldAccess AccessBuilder::ForJSFunctionPrototypeOrInitialMap() { 79 FieldAccess AccessBuilder::ForJSFunctionPrototypeOrInitialMap() {
80 FieldAccess access = {kTaggedBase, 80 FieldAccess access = {kTaggedBase,
81 JSFunction::kPrototypeOrInitialMapOffset, 81 JSFunction::kPrototypeOrInitialMapOffset,
(...skipping 27 matching lines...) Expand all
109 // static 109 // static
110 FieldAccess AccessBuilder::ForJSFunctionLiterals() { 110 FieldAccess AccessBuilder::ForJSFunctionLiterals() {
111 FieldAccess access = { 111 FieldAccess access = {
112 kTaggedBase, JSFunction::kLiteralsOffset, Handle<Name>(), 112 kTaggedBase, JSFunction::kLiteralsOffset, Handle<Name>(),
113 Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier}; 113 Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier};
114 return access; 114 return access;
115 } 115 }
116 116
117 // static 117 // static
118 FieldAccess AccessBuilder::ForJSFunctionCodeEntry() { 118 FieldAccess AccessBuilder::ForJSFunctionCodeEntry() {
119 FieldAccess access = {kTaggedBase, 119 FieldAccess access = {
120 JSFunction::kCodeEntryOffset, 120 kTaggedBase, JSFunction::kCodeEntryOffset, Handle<Name>(),
121 Handle<Name>(), 121 Type::Any(), MachineType::Pointer(), kNoWriteBarrier};
Benedikt Meurer 2016/09/02 07:31:29 Type::OtherInternal()
mvstanton 2016/09/02 08:03:56 Done.
122 Type::UntaggedPointer(),
123 MachineType::Pointer(),
124 kNoWriteBarrier};
125 return access; 122 return access;
126 } 123 }
127 124
128 // static 125 // static
129 FieldAccess AccessBuilder::ForJSFunctionNextFunctionLink() { 126 FieldAccess AccessBuilder::ForJSFunctionNextFunctionLink() {
130 FieldAccess access = {kTaggedBase, 127 FieldAccess access = {kTaggedBase,
131 JSFunction::kNextFunctionLinkOffset, 128 JSFunction::kNextFunctionLinkOffset,
132 Handle<Name>(), 129 Handle<Name>(),
133 Type::Any(), 130 Type::Any(),
134 MachineType::AnyTagged(), 131 MachineType::AnyTagged(),
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 } 208 }
212 return access; 209 return access;
213 } 210 }
214 211
215 212
216 // static 213 // static
217 FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() { 214 FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() {
218 FieldAccess access = {kTaggedBase, 215 FieldAccess access = {kTaggedBase,
219 JSArrayBuffer::kBackingStoreOffset, 216 JSArrayBuffer::kBackingStoreOffset,
220 MaybeHandle<Name>(), 217 MaybeHandle<Name>(),
221 Type::UntaggedPointer(), 218 Type::Any(),
Benedikt Meurer 2016/09/02 07:31:30 This should also be Type::OtherInternal()
mvstanton 2016/09/02 08:03:56 Done.
222 MachineType::Pointer(), 219 MachineType::Pointer(),
223 kNoWriteBarrier}; 220 kNoWriteBarrier};
224 return access; 221 return access;
225 } 222 }
226 223
227 // static 224 // static
228 FieldAccess AccessBuilder::ForJSArrayBufferBitField() { 225 FieldAccess AccessBuilder::ForJSArrayBufferBitField() {
229 FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset, 226 FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset,
230 MaybeHandle<Name>(), TypeCache::Get().kUint8, 227 MaybeHandle<Name>(), TypeCache::Get().kUint8,
231 MachineType::Uint32(), kNoWriteBarrier}; 228 MachineType::Uint32(), kNoWriteBarrier};
232 return access; 229 return access;
233 } 230 }
234 231
235 // static 232 // static
236 FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() { 233 FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() {
237 FieldAccess access = {kTaggedBase, 234 FieldAccess access = {
238 JSArrayBufferView::kBufferOffset, 235 kTaggedBase, JSArrayBufferView::kBufferOffset, MaybeHandle<Name>(),
239 MaybeHandle<Name>(), 236 Type::Any(), MachineType::TaggedPointer(), kPointerWriteBarrier};
Benedikt Meurer 2016/09/02 07:31:30 Type::OtherInternal()
mvstanton 2016/09/02 08:03:56 Done.
240 Type::TaggedPointer(),
241 MachineType::TaggedPointer(),
242 kPointerWriteBarrier};
243 return access; 237 return access;
244 } 238 }
245 239
246 // static 240 // static
247 FieldAccess AccessBuilder::ForJSArrayBufferViewByteLength() { 241 FieldAccess AccessBuilder::ForJSArrayBufferViewByteLength() {
248 FieldAccess access = {kTaggedBase, 242 FieldAccess access = {kTaggedBase,
249 JSArrayBufferView::kByteLengthOffset, 243 JSArrayBufferView::kByteLengthOffset,
250 MaybeHandle<Name>(), 244 MaybeHandle<Name>(),
251 TypeCache::Get().kPositiveInteger, 245 TypeCache::Get().kPositiveInteger,
252 MachineType::AnyTagged(), 246 MachineType::AnyTagged(),
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 FieldAccess access = { 307 FieldAccess access = {
314 kTaggedBase, JSIteratorResult::kValueOffset, MaybeHandle<Name>(), 308 kTaggedBase, JSIteratorResult::kValueOffset, MaybeHandle<Name>(),
315 Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier}; 309 Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier};
316 return access; 310 return access;
317 } 311 }
318 312
319 313
320 // static 314 // static
321 FieldAccess AccessBuilder::ForJSRegExpFlags() { 315 FieldAccess AccessBuilder::ForJSRegExpFlags() {
322 FieldAccess access = { 316 FieldAccess access = {
323 kTaggedBase, JSRegExp::kFlagsOffset, MaybeHandle<Name>(), 317 kTaggedBase, JSRegExp::kFlagsOffset, MaybeHandle<Name>(),
324 Type::Tagged(), MachineType::AnyTagged(), kFullWriteBarrier}; 318 Type::Any(), MachineType::AnyTagged(), kFullWriteBarrier};
Benedikt Meurer 2016/09/02 07:31:29 Type::NonInternal()
mvstanton 2016/09/02 08:03:55 Done.
325 return access; 319 return access;
326 } 320 }
327 321
328 322
329 // static 323 // static
330 FieldAccess AccessBuilder::ForJSRegExpSource() { 324 FieldAccess AccessBuilder::ForJSRegExpSource() {
331 FieldAccess access = { 325 FieldAccess access = {
332 kTaggedBase, JSRegExp::kSourceOffset, MaybeHandle<Name>(), 326 kTaggedBase, JSRegExp::kSourceOffset, MaybeHandle<Name>(),
333 Type::Tagged(), MachineType::AnyTagged(), kFullWriteBarrier}; 327 Type::Any(), MachineType::AnyTagged(), kFullWriteBarrier};
Benedikt Meurer 2016/09/02 07:31:29 Type::NonInternal()
mvstanton 2016/09/02 08:03:55 Done.
334 return access; 328 return access;
335 } 329 }
336 330
337 331
338 // static 332 // static
339 FieldAccess AccessBuilder::ForFixedArrayLength() { 333 FieldAccess AccessBuilder::ForFixedArrayLength() {
340 FieldAccess access = {kTaggedBase, 334 FieldAccess access = {kTaggedBase,
341 FixedArray::kLengthOffset, 335 FixedArray::kLengthOffset,
342 MaybeHandle<Name>(), 336 MaybeHandle<Name>(),
343 TypeCache::Get().kFixedArrayLengthType, 337 TypeCache::Get().kFixedArrayLengthType,
344 MachineType::TaggedSigned(), 338 MachineType::TaggedSigned(),
345 kNoWriteBarrier}; 339 kNoWriteBarrier};
346 return access; 340 return access;
347 } 341 }
348 342
349 // static 343 // static
350 FieldAccess AccessBuilder::ForFixedTypedArrayBaseBasePointer() { 344 FieldAccess AccessBuilder::ForFixedTypedArrayBaseBasePointer() {
351 FieldAccess access = {kTaggedBase, 345 FieldAccess access = {kTaggedBase,
352 FixedTypedArrayBase::kBasePointerOffset, 346 FixedTypedArrayBase::kBasePointerOffset,
353 MaybeHandle<Name>(), 347 MaybeHandle<Name>(),
Benedikt Meurer 2016/09/02 07:31:30 Type::OtherInternal()
mvstanton 2016/09/02 08:03:55 Done.
354 Type::Tagged(), 348 Type::Any(),
355 MachineType::AnyTagged(), 349 MachineType::AnyTagged(),
356 kPointerWriteBarrier}; 350 kPointerWriteBarrier};
357 return access; 351 return access;
358 } 352 }
359 353
360 // static 354 // static
361 FieldAccess AccessBuilder::ForFixedTypedArrayBaseExternalPointer() { 355 FieldAccess AccessBuilder::ForFixedTypedArrayBaseExternalPointer() {
362 FieldAccess access = {kTaggedBase, 356 FieldAccess access = {kTaggedBase,
363 FixedTypedArrayBase::kExternalPointerOffset, 357 FixedTypedArrayBase::kExternalPointerOffset,
364 MaybeHandle<Name>(), 358 MaybeHandle<Name>(),
365 Type::UntaggedPointer(), 359 Type::Any(),
Benedikt Meurer 2016/09/02 07:31:30 Type::OtherInternal()
mvstanton 2016/09/02 08:03:56 Done.
366 MachineType::Pointer(), 360 MachineType::Pointer(),
367 kNoWriteBarrier}; 361 kNoWriteBarrier};
368 return access; 362 return access;
369 } 363 }
370 364
371 // static 365 // static
372 FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() { 366 FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() {
373 FieldAccess access = {kTaggedBase, 367 FieldAccess access = {
374 DescriptorArray::kEnumCacheOffset, 368 kTaggedBase, DescriptorArray::kEnumCacheOffset, Handle<Name>(),
375 Handle<Name>(), 369 Type::Any(), MachineType::TaggedPointer(), kPointerWriteBarrier};
Benedikt Meurer 2016/09/02 07:31:30 Type::OtherInternal()
mvstanton 2016/09/02 08:03:56 Done.
376 Type::TaggedPointer(),
377 MachineType::TaggedPointer(),
378 kPointerWriteBarrier};
379 return access; 370 return access;
380 } 371 }
381 372
382 373
383 // static 374 // static
384 FieldAccess AccessBuilder::ForDescriptorArrayEnumCacheBridgeCache() { 375 FieldAccess AccessBuilder::ForDescriptorArrayEnumCacheBridgeCache() {
385 FieldAccess access = {kTaggedBase, 376 FieldAccess access = {kTaggedBase,
386 DescriptorArray::kEnumCacheBridgeCacheOffset, 377 DescriptorArray::kEnumCacheBridgeCacheOffset,
387 Handle<Name>(), 378 Handle<Name>(),
388 Type::TaggedPointer(), 379 Type::Any(),
Benedikt Meurer 2016/09/02 07:31:30 Type::OtherInternal()
mvstanton 2016/09/02 08:03:56 Done.
389 MachineType::TaggedPointer(), 380 MachineType::TaggedPointer(),
390 kPointerWriteBarrier}; 381 kPointerWriteBarrier};
391 return access; 382 return access;
392 } 383 }
393 384
394 385
395 // static 386 // static
396 FieldAccess AccessBuilder::ForMapBitField() { 387 FieldAccess AccessBuilder::ForMapBitField() {
397 FieldAccess access = {kTaggedBase, Map::kBitFieldOffset, 388 FieldAccess access = {kTaggedBase, Map::kBitFieldOffset,
398 Handle<Name>(), TypeCache::Get().kUint8, 389 Handle<Name>(), TypeCache::Get().kUint8,
399 MachineType::Uint8(), kNoWriteBarrier}; 390 MachineType::Uint8(), kNoWriteBarrier};
400 return access; 391 return access;
401 } 392 }
402 393
403 394
404 // static 395 // static
405 FieldAccess AccessBuilder::ForMapBitField3() { 396 FieldAccess AccessBuilder::ForMapBitField3() {
406 FieldAccess access = {kTaggedBase, Map::kBitField3Offset, 397 FieldAccess access = {kTaggedBase, Map::kBitField3Offset,
407 Handle<Name>(), TypeCache::Get().kInt32, 398 Handle<Name>(), TypeCache::Get().kInt32,
408 MachineType::Int32(), kNoWriteBarrier}; 399 MachineType::Int32(), kNoWriteBarrier};
409 return access; 400 return access;
410 } 401 }
411 402
412 403
413 // static 404 // static
414 FieldAccess AccessBuilder::ForMapDescriptors() { 405 FieldAccess AccessBuilder::ForMapDescriptors() {
415 FieldAccess access = {kTaggedBase, 406 FieldAccess access = {
416 Map::kDescriptorsOffset, 407 kTaggedBase, Map::kDescriptorsOffset, Handle<Name>(),
417 Handle<Name>(), 408 Type::Any(), MachineType::TaggedPointer(), kPointerWriteBarrier};
Benedikt Meurer 2016/09/02 07:31:29 Type::OtherInternal()
mvstanton 2016/09/02 08:03:56 Done.
418 Type::TaggedPointer(),
419 MachineType::TaggedPointer(),
420 kPointerWriteBarrier};
421 return access; 409 return access;
422 } 410 }
423 411
424 412
425 // static 413 // static
426 FieldAccess AccessBuilder::ForMapInstanceType() { 414 FieldAccess AccessBuilder::ForMapInstanceType() {
427 FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset, 415 FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset,
428 Handle<Name>(), TypeCache::Get().kUint8, 416 Handle<Name>(), TypeCache::Get().kUint8,
429 MachineType::Uint8(), kNoWriteBarrier}; 417 MachineType::Uint8(), kNoWriteBarrier};
430 return access; 418 return access;
431 } 419 }
432 420
433 421
434 // static 422 // static
435 FieldAccess AccessBuilder::ForMapPrototype() { 423 FieldAccess AccessBuilder::ForMapPrototype() {
436 FieldAccess access = {kTaggedBase, 424 FieldAccess access = {
437 Map::kPrototypeOffset, 425 kTaggedBase, Map::kPrototypeOffset, Handle<Name>(),
438 Handle<Name>(), 426 Type::Any(), MachineType::TaggedPointer(), kPointerWriteBarrier};
439 Type::TaggedPointer(),
440 MachineType::TaggedPointer(),
441 kPointerWriteBarrier};
442 return access; 427 return access;
443 } 428 }
444 429
445 430
446 // static 431 // static
447 FieldAccess AccessBuilder::ForNameHashField() { 432 FieldAccess AccessBuilder::ForNameHashField() {
448 FieldAccess access = {kTaggedBase, Name::kHashFieldOffset, 433 FieldAccess access = {kTaggedBase, Name::kHashFieldOffset,
449 Handle<Name>(), Type::Internal(), 434 Handle<Name>(), Type::Internal(),
450 MachineType::Uint32(), kNoWriteBarrier}; 435 MachineType::Uint32(), kNoWriteBarrier};
451 return access; 436 return access;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 kTaggedBase, SlicedString::kParentOffset, Handle<Name>(), 477 kTaggedBase, SlicedString::kParentOffset, Handle<Name>(),
493 Type::String(), MachineType::AnyTagged(), kPointerWriteBarrier}; 478 Type::String(), MachineType::AnyTagged(), kPointerWriteBarrier};
494 return access; 479 return access;
495 } 480 }
496 481
497 // static 482 // static
498 FieldAccess AccessBuilder::ForExternalStringResourceData() { 483 FieldAccess AccessBuilder::ForExternalStringResourceData() {
499 FieldAccess access = {kTaggedBase, 484 FieldAccess access = {kTaggedBase,
500 ExternalString::kResourceDataOffset, 485 ExternalString::kResourceDataOffset,
501 Handle<Name>(), 486 Handle<Name>(),
502 Type::UntaggedPointer(), 487 Type::Any(),
Benedikt Meurer 2016/09/02 07:31:30 Type::OtherInternal()
mvstanton 2016/09/02 08:03:56 Done.
503 MachineType::Pointer(), 488 MachineType::Pointer(),
504 kNoWriteBarrier}; 489 kNoWriteBarrier};
505 return access; 490 return access;
506 } 491 }
507 492
508 // static 493 // static
509 ElementAccess AccessBuilder::ForExternalOneByteStringCharacter() { 494 ElementAccess AccessBuilder::ForExternalOneByteStringCharacter() {
510 ElementAccess access = {kUntaggedBase, 0, TypeCache::Get().kUint8, 495 ElementAccess access = {kUntaggedBase, 0, TypeCache::Get().kUint8,
511 MachineType::Uint8(), kNoWriteBarrier}; 496 MachineType::Uint8(), kNoWriteBarrier};
512 return access; 497 return access;
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 } 724 }
740 UNREACHABLE(); 725 UNREACHABLE();
741 ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None(), 726 ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None(),
742 kNoWriteBarrier}; 727 kNoWriteBarrier};
743 return access; 728 return access;
744 } 729 }
745 730
746 } // namespace compiler 731 } // namespace compiler
747 } // namespace internal 732 } // namespace internal
748 } // namespace v8 733 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698