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

Side by Side Diff: src/compiler/js-builtin-reducer.cc

Issue 2083453002: [builtins] Introduce proper Float64Tan operator. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 6 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-builtin-reducer.h ('k') | src/compiler/js-intrinsic-lowering.h » ('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/js-builtin-reducer.h" 5 #include "src/compiler/js-builtin-reducer.h"
6 #include "src/compiler/js-graph.h" 6 #include "src/compiler/js-graph.h"
7 #include "src/compiler/node-matchers.h" 7 #include "src/compiler/node-matchers.h"
8 #include "src/compiler/node-properties.h" 8 #include "src/compiler/node-properties.h"
9 #include "src/compiler/simplified-operator.h" 9 #include "src/compiler/simplified-operator.h"
10 #include "src/objects-inl.h" 10 #include "src/objects-inl.h"
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 JSCallReduction r(node); 367 JSCallReduction r(node);
368 if (r.InputsMatchOne(Type::PlainPrimitive())) { 368 if (r.InputsMatchOne(Type::PlainPrimitive())) {
369 // Math.sqrt(a:plain-primitive) -> NumberSqrt(ToNumber(a)) 369 // Math.sqrt(a:plain-primitive) -> NumberSqrt(ToNumber(a))
370 Node* input = ToNumber(r.GetJSCallInput(0)); 370 Node* input = ToNumber(r.GetJSCallInput(0));
371 Node* value = graph()->NewNode(simplified()->NumberSqrt(), input); 371 Node* value = graph()->NewNode(simplified()->NumberSqrt(), input);
372 return Replace(value); 372 return Replace(value);
373 } 373 }
374 return NoChange(); 374 return NoChange();
375 } 375 }
376 376
377 // ES6 section 20.2.2.33 Math.tan ( x )
378 Reduction JSBuiltinReducer::ReduceMathTan(Node* node) {
379 JSCallReduction r(node);
380 if (r.InputsMatchOne(Type::PlainPrimitive())) {
381 // Math.tan(a:plain-primitive) -> NumberTan(ToNumber(a))
382 Node* input = ToNumber(r.GetJSCallInput(0));
383 Node* value = graph()->NewNode(simplified()->NumberTan(), input);
384 return Replace(value);
385 }
386 return NoChange();
387 }
388
377 // ES6 section 20.2.2.35 Math.trunc ( x ) 389 // ES6 section 20.2.2.35 Math.trunc ( x )
378 Reduction JSBuiltinReducer::ReduceMathTrunc(Node* node) { 390 Reduction JSBuiltinReducer::ReduceMathTrunc(Node* node) {
379 JSCallReduction r(node); 391 JSCallReduction r(node);
380 if (r.InputsMatchOne(Type::PlainPrimitive())) { 392 if (r.InputsMatchOne(Type::PlainPrimitive())) {
381 // Math.trunc(a:plain-primitive) -> NumberTrunc(ToNumber(a)) 393 // Math.trunc(a:plain-primitive) -> NumberTrunc(ToNumber(a))
382 Node* input = ToNumber(r.GetJSCallInput(0)); 394 Node* input = ToNumber(r.GetJSCallInput(0));
383 Node* value = graph()->NewNode(simplified()->NumberTrunc(), input); 395 Node* value = graph()->NewNode(simplified()->NumberTrunc(), input);
384 return Replace(value); 396 return Replace(value);
385 } 397 }
386 return NoChange(); 398 return NoChange();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 break; 473 break;
462 case kMathRound: 474 case kMathRound:
463 reduction = ReduceMathRound(node); 475 reduction = ReduceMathRound(node);
464 break; 476 break;
465 case kMathSin: 477 case kMathSin:
466 reduction = ReduceMathSin(node); 478 reduction = ReduceMathSin(node);
467 break; 479 break;
468 case kMathSqrt: 480 case kMathSqrt:
469 reduction = ReduceMathSqrt(node); 481 reduction = ReduceMathSqrt(node);
470 break; 482 break;
483 case kMathTan:
484 reduction = ReduceMathTan(node);
485 break;
471 case kMathTrunc: 486 case kMathTrunc:
472 reduction = ReduceMathTrunc(node); 487 reduction = ReduceMathTrunc(node);
473 break; 488 break;
474 case kStringFromCharCode: 489 case kStringFromCharCode:
475 reduction = ReduceStringFromCharCode(node); 490 reduction = ReduceStringFromCharCode(node);
476 break; 491 break;
477 default: 492 default:
478 break; 493 break;
479 } 494 }
480 495
(...skipping 28 matching lines...) Expand all
509 } 524 }
510 525
511 526
512 SimplifiedOperatorBuilder* JSBuiltinReducer::simplified() const { 527 SimplifiedOperatorBuilder* JSBuiltinReducer::simplified() const {
513 return jsgraph()->simplified(); 528 return jsgraph()->simplified();
514 } 529 }
515 530
516 } // namespace compiler 531 } // namespace compiler
517 } // namespace internal 532 } // namespace internal
518 } // namespace v8 533 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/js-builtin-reducer.h ('k') | src/compiler/js-intrinsic-lowering.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698