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

Side by Side Diff: src/compiler/js-typed-lowering.cc

Issue 2190833002: [turbofan] Eliminate redundant CheckString based on types. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 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/js-typed-lowering.h ('k') | 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/code-factory.h" 5 #include "src/code-factory.h"
6 #include "src/compilation-dependencies.h" 6 #include "src/compilation-dependencies.h"
7 #include "src/compiler/access-builder.h" 7 #include "src/compiler/access-builder.h"
8 #include "src/compiler/js-graph.h" 8 #include "src/compiler/js-graph.h"
9 #include "src/compiler/js-typed-lowering.h" 9 #include "src/compiler/js-typed-lowering.h"
10 #include "src/compiler/linkage.h" 10 #include "src/compiler/linkage.h"
(...skipping 1871 matching lines...) Expand 10 before | Expand all | Expand 10 after
1882 } 1882 }
1883 if (vtrue_type->Is(false_type_) && vfalse_type->Is(true_type_)) { 1883 if (vtrue_type->Is(false_type_) && vfalse_type->Is(true_type_)) {
1884 // Select(condition, vtrue:false, vfalse:true) => BooleanNot(condition) 1884 // Select(condition, vtrue:false, vfalse:true) => BooleanNot(condition)
1885 node->TrimInputCount(1); 1885 node->TrimInputCount(1);
1886 NodeProperties::ChangeOp(node, simplified()->BooleanNot()); 1886 NodeProperties::ChangeOp(node, simplified()->BooleanNot());
1887 return Changed(node); 1887 return Changed(node);
1888 } 1888 }
1889 return NoChange(); 1889 return NoChange();
1890 } 1890 }
1891 1891
1892 Reduction JSTypedLowering::ReduceCheckString(Node* node) {
1893 // TODO(bmeurer): Find a better home for this thing!
1894 Node* const input = NodeProperties::GetValueInput(node, 0);
1895 Type* const input_type = NodeProperties::GetType(input);
1896 if (input_type->Is(Type::String())) {
1897 ReplaceWithValue(node, input);
1898 return Replace(input);
1899 }
1900 return NoChange();
1901 }
1902
1892 Reduction JSTypedLowering::ReduceNumberRoundop(Node* node) { 1903 Reduction JSTypedLowering::ReduceNumberRoundop(Node* node) {
1893 // TODO(bmeurer): Find a better home for this thing! 1904 // TODO(bmeurer): Find a better home for this thing!
1894 Node* const input = NodeProperties::GetValueInput(node, 0); 1905 Node* const input = NodeProperties::GetValueInput(node, 0);
1895 Type* const input_type = NodeProperties::GetType(input); 1906 Type* const input_type = NodeProperties::GetType(input);
1896 if (input_type->Is(type_cache_.kIntegerOrMinusZeroOrNaN)) { 1907 if (input_type->Is(type_cache_.kIntegerOrMinusZeroOrNaN)) {
1897 return Replace(input); 1908 return Replace(input);
1898 } 1909 }
1899 return NoChange(); 1910 return NoChange();
1900 } 1911 }
1901 1912
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
2012 case IrOpcode::kJSForInStep: 2023 case IrOpcode::kJSForInStep:
2013 return ReduceJSForInStep(node); 2024 return ReduceJSForInStep(node);
2014 case IrOpcode::kJSGeneratorStore: 2025 case IrOpcode::kJSGeneratorStore:
2015 return ReduceJSGeneratorStore(node); 2026 return ReduceJSGeneratorStore(node);
2016 case IrOpcode::kJSGeneratorRestoreContinuation: 2027 case IrOpcode::kJSGeneratorRestoreContinuation:
2017 return ReduceJSGeneratorRestoreContinuation(node); 2028 return ReduceJSGeneratorRestoreContinuation(node);
2018 case IrOpcode::kJSGeneratorRestoreRegister: 2029 case IrOpcode::kJSGeneratorRestoreRegister:
2019 return ReduceJSGeneratorRestoreRegister(node); 2030 return ReduceJSGeneratorRestoreRegister(node);
2020 case IrOpcode::kSelect: 2031 case IrOpcode::kSelect:
2021 return ReduceSelect(node); 2032 return ReduceSelect(node);
2033 case IrOpcode::kCheckString:
2034 return ReduceCheckString(node);
2022 case IrOpcode::kNumberCeil: 2035 case IrOpcode::kNumberCeil:
2023 case IrOpcode::kNumberFloor: 2036 case IrOpcode::kNumberFloor:
2024 case IrOpcode::kNumberRound: 2037 case IrOpcode::kNumberRound:
2025 case IrOpcode::kNumberTrunc: 2038 case IrOpcode::kNumberTrunc:
2026 return ReduceNumberRoundop(node); 2039 return ReduceNumberRoundop(node);
2027 default: 2040 default:
2028 break; 2041 break;
2029 } 2042 }
2030 return NoChange(); 2043 return NoChange();
2031 } 2044 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2066 } 2079 }
2067 2080
2068 2081
2069 CompilationDependencies* JSTypedLowering::dependencies() const { 2082 CompilationDependencies* JSTypedLowering::dependencies() const {
2070 return dependencies_; 2083 return dependencies_;
2071 } 2084 }
2072 2085
2073 } // namespace compiler 2086 } // namespace compiler
2074 } // namespace internal 2087 } // namespace internal
2075 } // namespace v8 2088 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/js-typed-lowering.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698