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

Side by Side Diff: src/compiler/typer.cc

Issue 2692753004: [turbofan] escape analysis supports arguments object and rest elements (Closed)
Patch Set: handle the case where Deoptimizer::function_ is a Smi Created 3 years, 9 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 | « src/compiler/simplified-operator.cc ('k') | src/compiler/verifier.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 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/typer.h" 5 #include "src/compiler/typer.h"
6 6
7 #include <iomanip> 7 #include <iomanip>
8 8
9 #include "src/base/flags.h" 9 #include "src/base/flags.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 // TODO(rossberg): Ideally FrameState wouldn't have a value output. 830 // TODO(rossberg): Ideally FrameState wouldn't have a value output.
831 return Type::Internal(); 831 return Type::Internal();
832 } 832 }
833 833
834 Type* Typer::Visitor::TypeStateValues(Node* node) { return Type::Internal(); } 834 Type* Typer::Visitor::TypeStateValues(Node* node) { return Type::Internal(); }
835 835
836 Type* Typer::Visitor::TypeTypedStateValues(Node* node) { 836 Type* Typer::Visitor::TypeTypedStateValues(Node* node) {
837 return Type::Internal(); 837 return Type::Internal();
838 } 838 }
839 839
840 Type* Typer::Visitor::TypeArgumentsObjectState(Node* node) { 840 Type* Typer::Visitor::TypeArgumentsElementsState(Node* node) {
841 return Type::Internal(); 841 return Type::Internal();
842 } 842 }
843 843
844 Type* Typer::Visitor::TypeObjectState(Node* node) { return Type::Internal(); } 844 Type* Typer::Visitor::TypeObjectState(Node* node) { return Type::Internal(); }
845 845
846 Type* Typer::Visitor::TypeTypedObjectState(Node* node) { 846 Type* Typer::Visitor::TypeTypedObjectState(Node* node) {
847 return Type::Internal(); 847 return Type::Internal();
848 } 848 }
849 849
850 Type* Typer::Visitor::TypeCall(Node* node) { return Type::Any(); } 850 Type* Typer::Visitor::TypeCall(Node* node) { return Type::Any(); }
(...skipping 1094 matching lines...) Expand 10 before | Expand all | Expand 10 after
1945 } 1945 }
1946 1946
1947 Type* Typer::Visitor::TypeObjectIsString(Node* node) { 1947 Type* Typer::Visitor::TypeObjectIsString(Node* node) {
1948 return TypeUnaryOp(node, ObjectIsString); 1948 return TypeUnaryOp(node, ObjectIsString);
1949 } 1949 }
1950 1950
1951 Type* Typer::Visitor::TypeObjectIsUndetectable(Node* node) { 1951 Type* Typer::Visitor::TypeObjectIsUndetectable(Node* node) {
1952 return TypeUnaryOp(node, ObjectIsUndetectable); 1952 return TypeUnaryOp(node, ObjectIsUndetectable);
1953 } 1953 }
1954 1954
1955 Type* Typer::Visitor::TypeArgumentsLength(Node* node) {
1956 return TypeCache::Get().kArgumentsLengthType;
1957 }
1958
1959 Type* Typer::Visitor::TypeArgumentsFrame(Node* node) {
1960 return Type::ExternalPointer();
1961 }
1962
1955 Type* Typer::Visitor::TypeNewUnmappedArgumentsElements(Node* node) { 1963 Type* Typer::Visitor::TypeNewUnmappedArgumentsElements(Node* node) {
1956 return Type::OtherInternal(); 1964 return Type::OtherInternal();
1957 } 1965 }
1958 1966
1959 Type* Typer::Visitor::TypeNewRestParameterElements(Node* node) {
1960 return Type::OtherInternal();
1961 }
1962
1963 Type* Typer::Visitor::TypeArrayBufferWasNeutered(Node* node) { 1967 Type* Typer::Visitor::TypeArrayBufferWasNeutered(Node* node) {
1964 return Type::Boolean(); 1968 return Type::Boolean();
1965 } 1969 }
1966 1970
1967 // Heap constants. 1971 // Heap constants.
1968 1972
1969 Type* Typer::Visitor::TypeConstant(Handle<Object> value) { 1973 Type* Typer::Visitor::TypeConstant(Handle<Object> value) {
1970 if (Type::IsInteger(*value)) { 1974 if (Type::IsInteger(*value)) {
1971 return Type::Range(value->Number(), value->Number(), zone()); 1975 return Type::Range(value->Number(), value->Number(), zone());
1972 } 1976 }
1973 return Type::NewConstant(value, zone()); 1977 return Type::NewConstant(value, zone());
1974 } 1978 }
1975 1979
1976 } // namespace compiler 1980 } // namespace compiler
1977 } // namespace internal 1981 } // namespace internal
1978 } // namespace v8 1982 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/simplified-operator.cc ('k') | src/compiler/verifier.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698