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

Side by Side Diff: src/hydrogen-instructions.h

Issue 173963002: Remove all uses of field-tracking flags that do not make decisions but are subject to existing info… (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: More flags removed Created 6 years, 10 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
« no previous file with comments | « src/code-stubs.h ('k') | src/ia32/full-codegen-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 5808 matching lines...) Expand 10 before | Expand all | Expand 10 after
5819 } 5819 }
5820 5820
5821 static HObjectAccess ForNextFunctionLinkPointer() { 5821 static HObjectAccess ForNextFunctionLinkPointer() {
5822 return HObjectAccess(kInobject, JSFunction::kNextFunctionLinkOffset); 5822 return HObjectAccess(kInobject, JSFunction::kNextFunctionLinkOffset);
5823 } 5823 }
5824 5824
5825 static HObjectAccess ForArrayLength(ElementsKind elements_kind) { 5825 static HObjectAccess ForArrayLength(ElementsKind elements_kind) {
5826 return HObjectAccess( 5826 return HObjectAccess(
5827 kArrayLengths, 5827 kArrayLengths,
5828 JSArray::kLengthOffset, 5828 JSArray::kLengthOffset,
5829 IsFastElementsKind(elements_kind) && 5829 IsFastElementsKind(elements_kind)
5830 FLAG_track_fields 5830 ? Representation::Smi() : Representation::Tagged());
5831 ? Representation::Smi() : Representation::Tagged());
5832 } 5831 }
5833 5832
5834 static HObjectAccess ForAllocationSiteOffset(int offset); 5833 static HObjectAccess ForAllocationSiteOffset(int offset);
5835 5834
5836 static HObjectAccess ForAllocationSiteList() { 5835 static HObjectAccess ForAllocationSiteList() {
5837 return HObjectAccess(kExternalMemory, 0, Representation::Tagged(), 5836 return HObjectAccess(kExternalMemory, 0, Representation::Tagged(),
5838 Handle<String>::null(), false, false); 5837 Handle<String>::null(), false, false);
5839 } 5838 }
5840 5839
5841 static HObjectAccess ForFixedArrayLength() { 5840 static HObjectAccess ForFixedArrayLength() {
5842 return HObjectAccess( 5841 return HObjectAccess(
5843 kArrayLengths, 5842 kArrayLengths,
5844 FixedArray::kLengthOffset, 5843 FixedArray::kLengthOffset,
5845 FLAG_track_fields ? Representation::Smi() : Representation::Tagged()); 5844 Representation::Smi());
5846 } 5845 }
5847 5846
5848 static HObjectAccess ForStringHashField() { 5847 static HObjectAccess ForStringHashField() {
5849 return HObjectAccess(kInobject, 5848 return HObjectAccess(kInobject,
5850 String::kHashFieldOffset, 5849 String::kHashFieldOffset,
5851 Representation::Integer32()); 5850 Representation::Integer32());
5852 } 5851 }
5853 5852
5854 static HObjectAccess ForStringLength() { 5853 static HObjectAccess ForStringLength() {
5855 STATIC_ASSERT(String::kMaxLength <= Smi::kMaxValue); 5854 STATIC_ASSERT(String::kMaxLength <= Smi::kMaxValue);
5856 return HObjectAccess( 5855 return HObjectAccess(
5857 kStringLengths, 5856 kStringLengths,
5858 String::kLengthOffset, 5857 String::kLengthOffset,
5859 FLAG_track_fields ? Representation::Smi() : Representation::Tagged()); 5858 Representation::Smi());
5860 } 5859 }
5861 5860
5862 static HObjectAccess ForConsStringFirst() { 5861 static HObjectAccess ForConsStringFirst() {
5863 return HObjectAccess(kInobject, ConsString::kFirstOffset); 5862 return HObjectAccess(kInobject, ConsString::kFirstOffset);
5864 } 5863 }
5865 5864
5866 static HObjectAccess ForConsStringSecond() { 5865 static HObjectAccess ForConsStringSecond() {
5867 return HObjectAccess(kInobject, ConsString::kSecondOffset); 5866 return HObjectAccess(kInobject, ConsString::kSecondOffset);
5868 } 5867 }
5869 5868
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
6140 set_type(HType::Smi()); 6139 set_type(HType::Smi());
6141 if (SmiValuesAre32Bits()) { 6140 if (SmiValuesAre32Bits()) {
6142 set_representation(Representation::Integer32()); 6141 set_representation(Representation::Integer32());
6143 } else { 6142 } else {
6144 set_representation(representation); 6143 set_representation(representation);
6145 } 6144 }
6146 } else if (representation.IsDouble() || 6145 } else if (representation.IsDouble() ||
6147 representation.IsExternal() || 6146 representation.IsExternal() ||
6148 representation.IsInteger32()) { 6147 representation.IsInteger32()) {
6149 set_representation(representation); 6148 set_representation(representation);
6150 } else if (FLAG_track_heap_object_fields && 6149 } else if (representation.IsHeapObject()) {
6151 representation.IsHeapObject()) {
6152 set_type(HType::NonPrimitive()); 6150 set_type(HType::NonPrimitive());
6153 set_representation(Representation::Tagged()); 6151 set_representation(Representation::Tagged());
6154 } else { 6152 } else {
6155 set_representation(Representation::Tagged()); 6153 set_representation(Representation::Tagged());
6156 } 6154 }
6157 access.SetGVNFlags(this, LOAD); 6155 access.SetGVNFlags(this, LOAD);
6158 } 6156 }
6159 6157
6160 virtual bool IsDeletable() const V8_OVERRIDE { return true; } 6158 virtual bool IsDeletable() const V8_OVERRIDE { return true; }
6161 6159
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
6539 ASSERT(!has_transition()); // Only set once. 6537 ASSERT(!has_transition()); // Only set once.
6540 Handle<Map> map = Handle<Map>::cast(map_constant->handle(info->isolate())); 6538 Handle<Map> map = Handle<Map>::cast(map_constant->handle(info->isolate()));
6541 if (map->CanBeDeprecated()) { 6539 if (map->CanBeDeprecated()) {
6542 map->AddDependentCompilationInfo(DependentCode::kTransitionGroup, info); 6540 map->AddDependentCompilationInfo(DependentCode::kTransitionGroup, info);
6543 } 6541 }
6544 SetOperandAt(2, map_constant); 6542 SetOperandAt(2, map_constant);
6545 has_transition_ = true; 6543 has_transition_ = true;
6546 } 6544 }
6547 6545
6548 bool NeedsWriteBarrier() { 6546 bool NeedsWriteBarrier() {
6549 ASSERT(!(FLAG_track_double_fields && field_representation().IsDouble()) || 6547 ASSERT(!field_representation().IsDouble() || !has_transition());
6550 !has_transition());
6551 if (IsSkipWriteBarrier()) return false; 6548 if (IsSkipWriteBarrier()) return false;
6552 if (field_representation().IsDouble()) return false; 6549 if (field_representation().IsDouble()) return false;
6553 if (field_representation().IsSmi()) return false; 6550 if (field_representation().IsSmi()) return false;
6554 if (field_representation().IsInteger32()) return false; 6551 if (field_representation().IsInteger32()) return false;
6555 if (field_representation().IsExternal()) return false; 6552 if (field_representation().IsExternal()) return false;
6556 return StoringValueNeedsWriteBarrier(value()) && 6553 return StoringValueNeedsWriteBarrier(value()) &&
6557 ReceiverObjectNeedsWriteBarrier(object(), value(), 6554 ReceiverObjectNeedsWriteBarrier(object(), value(),
6558 new_space_dominator()); 6555 new_space_dominator());
6559 } 6556 }
6560 6557
(...skipping 921 matching lines...) Expand 10 before | Expand all | Expand 10 after
7482 virtual bool IsDeletable() const V8_OVERRIDE { return true; } 7479 virtual bool IsDeletable() const V8_OVERRIDE { return true; }
7483 }; 7480 };
7484 7481
7485 7482
7486 #undef DECLARE_INSTRUCTION 7483 #undef DECLARE_INSTRUCTION
7487 #undef DECLARE_CONCRETE_INSTRUCTION 7484 #undef DECLARE_CONCRETE_INSTRUCTION
7488 7485
7489 } } // namespace v8::internal 7486 } } // namespace v8::internal
7490 7487
7491 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 7488 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/ia32/full-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698