Commit c8e93b06 authored by mvstanton's avatar mvstanton Committed by Commit bot

[turbofan] Typer changes to avoid Type representation dimension

This CL "weakens" the typer somewhat, as it was querying aspects of
Type that are within the representation dimension. It's not the right
place to do that.

BUG=

Review-Url: https://codereview.chromium.org/2320473003
Cr-Commit-Position: refs/heads/master@{#39391}
parent fb4a190c
...@@ -25,8 +25,8 @@ FieldAccess AccessBuilder::ForExternalDoubleValue() { ...@@ -25,8 +25,8 @@ FieldAccess AccessBuilder::ForExternalDoubleValue() {
// static // static
FieldAccess AccessBuilder::ForMap() { FieldAccess AccessBuilder::ForMap() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, HeapObject::kMapOffset, MaybeHandle<Name>(), kTaggedBase, HeapObject::kMapOffset, MaybeHandle<Name>(),
Type::OtherInternal(), MachineType::AnyTagged(), kMapWriteBarrier}; Type::OtherInternal(), MachineType::TaggedPointer(), kMapWriteBarrier};
return access; return access;
} }
...@@ -46,8 +46,8 @@ FieldAccess AccessBuilder::ForHeapNumberValue() { ...@@ -46,8 +46,8 @@ FieldAccess AccessBuilder::ForHeapNumberValue() {
// static // static
FieldAccess AccessBuilder::ForJSObjectProperties() { FieldAccess AccessBuilder::ForJSObjectProperties() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSObject::kPropertiesOffset, MaybeHandle<Name>(), kTaggedBase, JSObject::kPropertiesOffset, MaybeHandle<Name>(),
Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier}; Type::Internal(), MachineType::TaggedPointer(), kPointerWriteBarrier};
return access; return access;
} }
...@@ -55,8 +55,8 @@ FieldAccess AccessBuilder::ForJSObjectProperties() { ...@@ -55,8 +55,8 @@ FieldAccess AccessBuilder::ForJSObjectProperties() {
// static // static
FieldAccess AccessBuilder::ForJSObjectElements() { FieldAccess AccessBuilder::ForJSObjectElements() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSObject::kElementsOffset, MaybeHandle<Name>(), kTaggedBase, JSObject::kElementsOffset, MaybeHandle<Name>(),
Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier}; Type::Internal(), MachineType::TaggedPointer(), kPointerWriteBarrier};
return access; return access;
} }
...@@ -101,7 +101,7 @@ FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() { ...@@ -101,7 +101,7 @@ FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() {
JSFunction::kSharedFunctionInfoOffset, JSFunction::kSharedFunctionInfoOffset,
Handle<Name>(), Handle<Name>(),
Type::OtherInternal(), Type::OtherInternal(),
MachineType::AnyTagged(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier};
return access; return access;
} }
...@@ -109,8 +109,8 @@ FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() { ...@@ -109,8 +109,8 @@ FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() {
// static // static
FieldAccess AccessBuilder::ForJSFunctionLiterals() { FieldAccess AccessBuilder::ForJSFunctionLiterals() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSFunction::kLiteralsOffset, Handle<Name>(), kTaggedBase, JSFunction::kLiteralsOffset, Handle<Name>(),
Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier}; Type::Internal(), MachineType::TaggedPointer(), kPointerWriteBarrier};
return access; return access;
} }
...@@ -139,7 +139,7 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectContext() { ...@@ -139,7 +139,7 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectContext() {
JSGeneratorObject::kContextOffset, JSGeneratorObject::kContextOffset,
Handle<Name>(), Handle<Name>(),
Type::Internal(), Type::Internal(),
MachineType::AnyTagged(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier};
return access; return access;
} }
...@@ -151,7 +151,7 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectContinuation() { ...@@ -151,7 +151,7 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectContinuation() {
JSGeneratorObject::kContinuationOffset, JSGeneratorObject::kContinuationOffset,
Handle<Name>(), Handle<Name>(),
type_cache.kSmi, type_cache.kSmi,
MachineType::AnyTagged(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier};
return access; return access;
} }
...@@ -181,12 +181,9 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectOperandStack() { ...@@ -181,12 +181,9 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectOperandStack() {
// static // static
FieldAccess AccessBuilder::ForJSGeneratorObjectResumeMode() { FieldAccess AccessBuilder::ForJSGeneratorObjectResumeMode() {
TypeCache const& type_cache = TypeCache::Get(); TypeCache const& type_cache = TypeCache::Get();
FieldAccess access = {kTaggedBase, FieldAccess access = {
JSGeneratorObject::kResumeModeOffset, kTaggedBase, JSGeneratorObject::kResumeModeOffset, Handle<Name>(),
Handle<Name>(), type_cache.kSmi, MachineType::TaggedSigned(), kNoWriteBarrier};
type_cache.kSmi,
MachineType::AnyTagged(),
kNoWriteBarrier};
return access; return access;
} }
...@@ -197,7 +194,7 @@ FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) { ...@@ -197,7 +194,7 @@ FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) {
JSArray::kLengthOffset, JSArray::kLengthOffset,
Handle<Name>(), Handle<Name>(),
type_cache.kJSArrayLengthType, type_cache.kJSArrayLengthType,
MachineType::AnyTagged(), MachineType::TaggedSigned(),
kFullWriteBarrier}; kFullWriteBarrier};
if (IsFastDoubleElementsKind(elements_kind)) { if (IsFastDoubleElementsKind(elements_kind)) {
access.type = type_cache.kFixedDoubleArrayLengthType; access.type = type_cache.kFixedDoubleArrayLengthType;
...@@ -268,7 +265,7 @@ FieldAccess AccessBuilder::ForJSTypedArrayLength() { ...@@ -268,7 +265,7 @@ FieldAccess AccessBuilder::ForJSTypedArrayLength() {
JSTypedArray::kLengthOffset, JSTypedArray::kLengthOffset,
MaybeHandle<Name>(), MaybeHandle<Name>(),
TypeCache::Get().kJSTypedArrayLengthType, TypeCache::Get().kJSTypedArrayLengthType,
MachineType::AnyTagged(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier};
return access; return access;
} }
...@@ -459,16 +456,16 @@ FieldAccess AccessBuilder::ForStringLength() { ...@@ -459,16 +456,16 @@ FieldAccess AccessBuilder::ForStringLength() {
// static // static
FieldAccess AccessBuilder::ForConsStringFirst() { FieldAccess AccessBuilder::ForConsStringFirst() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, ConsString::kFirstOffset, Handle<Name>(), kTaggedBase, ConsString::kFirstOffset, Handle<Name>(),
Type::String(), MachineType::AnyTagged(), kPointerWriteBarrier}; Type::String(), MachineType::TaggedPointer(), kPointerWriteBarrier};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForConsStringSecond() { FieldAccess AccessBuilder::ForConsStringSecond() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, ConsString::kSecondOffset, Handle<Name>(), kTaggedBase, ConsString::kSecondOffset, Handle<Name>(),
Type::String(), MachineType::AnyTagged(), kPointerWriteBarrier}; Type::String(), MachineType::TaggedPointer(), kPointerWriteBarrier};
return access; return access;
} }
...@@ -476,15 +473,15 @@ FieldAccess AccessBuilder::ForConsStringSecond() { ...@@ -476,15 +473,15 @@ FieldAccess AccessBuilder::ForConsStringSecond() {
FieldAccess AccessBuilder::ForSlicedStringOffset() { FieldAccess AccessBuilder::ForSlicedStringOffset() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, SlicedString::kOffsetOffset, Handle<Name>(), kTaggedBase, SlicedString::kOffsetOffset, Handle<Name>(),
Type::SignedSmall(), MachineType::AnyTagged(), kNoWriteBarrier}; Type::SignedSmall(), MachineType::TaggedSigned(), kNoWriteBarrier};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForSlicedStringParent() { FieldAccess AccessBuilder::ForSlicedStringParent() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, SlicedString::kParentOffset, Handle<Name>(), kTaggedBase, SlicedString::kParentOffset, Handle<Name>(),
Type::String(), MachineType::AnyTagged(), kPointerWriteBarrier}; Type::String(), MachineType::TaggedPointer(), kPointerWriteBarrier};
return access; return access;
} }
...@@ -535,7 +532,7 @@ FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() { ...@@ -535,7 +532,7 @@ FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() {
JSGlobalObject::kGlobalProxyOffset, JSGlobalObject::kGlobalProxyOffset,
Handle<Name>(), Handle<Name>(),
Type::Receiver(), Type::Receiver(),
MachineType::AnyTagged(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier};
return access; return access;
} }
...@@ -546,7 +543,7 @@ FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() { ...@@ -546,7 +543,7 @@ FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() {
JSGlobalObject::kNativeContextOffset, JSGlobalObject::kNativeContextOffset,
Handle<Name>(), Handle<Name>(),
Type::Internal(), Type::Internal(),
MachineType::AnyTagged(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier};
return access; return access;
} }
......
...@@ -282,8 +282,9 @@ void MemoryOptimizer::VisitAllocate(Node* node, AllocationState const* state) { ...@@ -282,8 +282,9 @@ void MemoryOptimizer::VisitAllocate(Node* node, AllocationState const* state) {
control = graph()->NewNode(common()->Merge(2), if_true, if_false); control = graph()->NewNode(common()->Merge(2), if_true, if_false);
effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control); effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
value = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2), value = graph()->NewNode(
vtrue, vfalse, control); common()->Phi(MachineRepresentation::kTaggedPointer, 2), vtrue, vfalse,
control);
// Create an unfoldable allocation group. // Create an unfoldable allocation group.
AllocationGroup* group = AllocationGroup* group =
......
...@@ -516,8 +516,7 @@ Type* Typer::Visitor::ObjectIsReceiver(Type* type, Typer* t) { ...@@ -516,8 +516,7 @@ Type* Typer::Visitor::ObjectIsReceiver(Type* type, Typer* t) {
Type* Typer::Visitor::ObjectIsSmi(Type* type, Typer* t) { Type* Typer::Visitor::ObjectIsSmi(Type* type, Typer* t) {
if (type->Is(Type::TaggedSigned())) return t->singleton_true_; if (!type->Maybe(Type::SignedSmall())) return t->singleton_false_;
if (type->Is(Type::TaggedPointer())) return t->singleton_false_;
return Type::Boolean(); return Type::Boolean();
} }
...@@ -1593,8 +1592,8 @@ Type* Typer::Visitor::TypeCheckIf(Node* node) { ...@@ -1593,8 +1592,8 @@ Type* Typer::Visitor::TypeCheckIf(Node* node) {
} }
Type* Typer::Visitor::TypeCheckTaggedPointer(Node* node) { Type* Typer::Visitor::TypeCheckTaggedPointer(Node* node) {
Type* arg = Operand(node, 0); Type* type = Operand(node, 0);
return Type::Intersect(arg, Type::TaggedPointer(), zone()); return type;
} }
Type* Typer::Visitor::TypeCheckTaggedSigned(Node* node) { Type* Typer::Visitor::TypeCheckTaggedSigned(Node* node) {
...@@ -1623,7 +1622,7 @@ Type* Typer::Visitor::TypeConvertTaggedHoleToUndefined(Node* node) { ...@@ -1623,7 +1622,7 @@ Type* Typer::Visitor::TypeConvertTaggedHoleToUndefined(Node* node) {
return type; return type;
} }
Type* Typer::Visitor::TypeAllocate(Node* node) { return Type::TaggedPointer(); } Type* Typer::Visitor::TypeAllocate(Node* node) { return Type::Any(); }
Type* Typer::Visitor::TypeLoadField(Node* node) { Type* Typer::Visitor::TypeLoadField(Node* node) {
return FieldAccessOf(node->op()).type; return FieldAccessOf(node->op()).type;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment