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: test/unittests/compiler/js-type-feedback-unittest.cc

Issue 1347353003: [turbofan] Checking of input counts on node creation (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Split the CL (no node editor yet) Created 5 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
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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.h" 5 #include "src/compiler.h"
6 6
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-operator.h" 9 #include "src/compiler/js-operator.h"
10 #include "src/compiler/js-type-feedback.h" 10 #include "src/compiler/js-type-feedback.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 Node* ReturnLoadNamedFromGlobal( 77 Node* ReturnLoadNamedFromGlobal(
78 const char* string, Node* effect, Node* control, 78 const char* string, Node* effect, Node* control,
79 JSTypeFeedbackSpecializer::DeoptimizationMode mode) { 79 JSTypeFeedbackSpecializer::DeoptimizationMode mode) {
80 VectorSlotPair feedback; 80 VectorSlotPair feedback;
81 Node* global = UndefinedConstant(); 81 Node* global = UndefinedConstant();
82 Node* vector = UndefinedConstant(); 82 Node* vector = UndefinedConstant();
83 Node* context = UndefinedConstant(); 83 Node* context = UndefinedConstant();
84 84
85 Handle<Name> name = isolate()->factory()->InternalizeUtf8String(string); 85 Handle<Name> name = isolate()->factory()->InternalizeUtf8String(string);
86 const Operator* op = javascript()->LoadGlobal(name, feedback); 86 const Operator* op = javascript()->LoadGlobal(name, feedback);
87 Node* load = graph()->NewNode(op, context, global, vector, context); 87 Node* load =
88 if (mode == JSTypeFeedbackSpecializer::kDeoptimizationEnabled) { 88 graph()->NewNode(op, context, global, vector, context,
89 for (int i = 0; i < OperatorProperties::GetFrameStateInputCount(op); 89 EmptyFrameState(), EmptyFrameState(), effect, control);
90 i++) {
91 load->AppendInput(zone(), EmptyFrameState());
92 }
93 }
94 load->AppendInput(zone(), effect);
95 load->AppendInput(zone(), control);
96 Node* if_success = graph()->NewNode(common()->IfSuccess(), load); 90 Node* if_success = graph()->NewNode(common()->IfSuccess(), load);
97 return graph()->NewNode(common()->Return(), load, load, if_success); 91 return graph()->NewNode(common()->Return(), load, load, if_success);
98 } 92 }
99 93
100 CompilationDependencies* dependencies() { return &dependencies_; } 94 CompilationDependencies* dependencies() { return &dependencies_; }
101 95
102 private: 96 private:
103 JSOperatorBuilder javascript_; 97 JSOperatorBuilder javascript_;
104 CompilationDependencies dependencies_; 98 CompilationDependencies dependencies_;
105 }; 99 };
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 IsReturn(load_field_match, load_field_match, graph()->start())); 326 IsReturn(load_field_match, load_field_match, graph()->start()));
333 EXPECT_THAT(graph()->end(), IsEnd(ret)); 327 EXPECT_THAT(graph()->end(), IsEnd(ret));
334 328
335 EXPECT_FALSE(dependencies()->IsEmpty()); 329 EXPECT_FALSE(dependencies()->IsEmpty());
336 dependencies()->Rollback(); 330 dependencies()->Rollback();
337 } 331 }
338 332
339 } // namespace compiler 333 } // namespace compiler
340 } // namespace internal 334 } // namespace internal
341 } // namespace v8 335 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698