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

Side by Side Diff: test/unittests/compiler/js-context-relaxation-unittest.cc

Issue 1379593002: [turbofan] Pass scope infos as static operator parameters. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@local_cleanup-turbofan-verifier
Patch Set: Fix Windows build. Created 5 years, 2 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/operator.h ('k') | test/unittests/compiler/js-operator-unittest.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 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/js-context-relaxation.h" 5 #include "src/compiler/js-context-relaxation.h"
6 #include "src/compiler/js-graph.h" 6 #include "src/compiler/js-graph.h"
7 #include "test/unittests/compiler/graph-unittest.h" 7 #include "test/unittests/compiler/graph-unittest.h"
8 #include "test/unittests/compiler/node-test-utils.h" 8 #include "test/unittests/compiler/node-test-utils.h"
9 9
10 namespace v8 { 10 namespace v8 {
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 EXPECT_EQ(outer_context, NodeProperties::GetContextInput(node)); 194 EXPECT_EQ(outer_context, NodeProperties::GetContextInput(node));
195 } 195 }
196 196
197 197
198 TEST_F(JSContextRelaxationTest, 198 TEST_F(JSContextRelaxationTest,
199 RelaxJSCallFunctionDeepContextChainFullRelaxForBlock) { 199 RelaxJSCallFunctionDeepContextChainFullRelaxForBlock) {
200 Node* const input0 = Parameter(0); 200 Node* const input0 = Parameter(0);
201 Node* const input1 = Parameter(1); 201 Node* const input1 = Parameter(1);
202 Node* const context = Parameter(2); 202 Node* const context = Parameter(2);
203 Node* const outer_context = Parameter(3); 203 Node* const outer_context = Parameter(3);
204 const Operator* op = javascript()->CreateBlockContext(); 204 Handle<ScopeInfo> scope_info = Handle<ScopeInfo>::null();
205 const Operator* op = javascript()->CreateBlockContext(scope_info);
205 Node* const effect = graph()->start(); 206 Node* const effect = graph()->start();
206 Node* const control = graph()->start(); 207 Node* const control = graph()->start();
207 Node* nested_context = graph()->NewNode( 208 Node* nested_context =
208 op, graph()->start(), graph()->start(), outer_context, effect, control); 209 graph()->NewNode(op, graph()->start(), outer_context, effect, control);
209 Node* const frame_state_2 = 210 Node* const frame_state_2 =
210 ShallowFrameStateChain(nested_context, CALL_MAINTAINS_NATIVE_CONTEXT); 211 ShallowFrameStateChain(nested_context, CALL_MAINTAINS_NATIVE_CONTEXT);
211 Node* node = 212 Node* node =
212 graph()->NewNode(javascript()->CallFunction(2, NO_CALL_FUNCTION_FLAGS, 213 graph()->NewNode(javascript()->CallFunction(2, NO_CALL_FUNCTION_FLAGS,
213 STRICT, VectorSlotPair()), 214 STRICT, VectorSlotPair()),
214 input0, input1, context, frame_state_2, effect, control); 215 input0, input1, context, frame_state_2, effect, control);
215 Reduction const r = Reduce(node); 216 Reduction const r = Reduce(node);
216 EXPECT_TRUE(r.Changed()); 217 EXPECT_TRUE(r.Changed());
217 EXPECT_EQ(outer_context, NodeProperties::GetContextInput(node)); 218 EXPECT_EQ(outer_context, NodeProperties::GetContextInput(node));
218 } 219 }
219 220
220 221
221 TEST_F(JSContextRelaxationTest, 222 TEST_F(JSContextRelaxationTest,
222 RelaxJSCallFunctionDeepContextChainPartialRelaxForScript) { 223 RelaxJSCallFunctionDeepContextChainPartialRelaxForScript) {
223 Node* const input0 = Parameter(0); 224 Node* const input0 = Parameter(0);
224 Node* const input1 = Parameter(1); 225 Node* const input1 = Parameter(1);
225 Node* const context = Parameter(2); 226 Node* const context = Parameter(2);
226 Node* const outer_context = Parameter(3); 227 Node* const outer_context = Parameter(3);
227 const Operator* op = javascript()->CreateScriptContext(); 228 Handle<ScopeInfo> scope_info = Handle<ScopeInfo>::null();
229 const Operator* op = javascript()->CreateScriptContext(scope_info);
228 Node* const frame_state_1 = 230 Node* const frame_state_1 =
229 ShallowFrameStateChain(outer_context, CALL_MAINTAINS_NATIVE_CONTEXT); 231 ShallowFrameStateChain(outer_context, CALL_MAINTAINS_NATIVE_CONTEXT);
230 Node* const effect = graph()->start(); 232 Node* const effect = graph()->start();
231 Node* const control = graph()->start(); 233 Node* const control = graph()->start();
232 Node* nested_context = 234 Node* nested_context = graph()->NewNode(op, graph()->start(), outer_context,
233 graph()->NewNode(op, graph()->start(), graph()->start(), outer_context, 235 frame_state_1, effect, control);
234 frame_state_1, effect, control);
235 Node* const frame_state_2 = 236 Node* const frame_state_2 =
236 ShallowFrameStateChain(nested_context, CALL_MAINTAINS_NATIVE_CONTEXT); 237 ShallowFrameStateChain(nested_context, CALL_MAINTAINS_NATIVE_CONTEXT);
237 Node* node = 238 Node* node =
238 graph()->NewNode(javascript()->CallFunction(2, NO_CALL_FUNCTION_FLAGS, 239 graph()->NewNode(javascript()->CallFunction(2, NO_CALL_FUNCTION_FLAGS,
239 STRICT, VectorSlotPair()), 240 STRICT, VectorSlotPair()),
240 input0, input1, context, frame_state_2, effect, control); 241 input0, input1, context, frame_state_2, effect, control);
241 Reduction const r = Reduce(node); 242 Reduction const r = Reduce(node);
242 EXPECT_TRUE(r.Changed()); 243 EXPECT_TRUE(r.Changed());
243 EXPECT_EQ(nested_context, NodeProperties::GetContextInput(node)); 244 EXPECT_EQ(nested_context, NodeProperties::GetContextInput(node));
244 } 245 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 STRICT, VectorSlotPair()), 286 STRICT, VectorSlotPair()),
286 input0, input1, context, frame_state_2, effect, control); 287 input0, input1, context, frame_state_2, effect, control);
287 Reduction const r = Reduce(node); 288 Reduction const r = Reduce(node);
288 EXPECT_FALSE(r.Changed()); 289 EXPECT_FALSE(r.Changed());
289 EXPECT_EQ(context, NodeProperties::GetContextInput(node)); 290 EXPECT_EQ(context, NodeProperties::GetContextInput(node));
290 } 291 }
291 292
292 } // namespace compiler 293 } // namespace compiler
293 } // namespace internal 294 } // namespace internal
294 } // namespace v8 295 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/operator.h ('k') | test/unittests/compiler/js-operator-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698