Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/library_call.cpp @ 8076:c59b7900a2bd
8007959: Use expensive node logic for more math nodes
Summary: use expensive node logic for other more math nodes.
Reviewed-by: kvn
author | roland |
---|---|
date | Mon, 18 Feb 2013 09:06:24 +0100 |
parents | 8b3da8d14c93 |
children | 16885e702c88 3d641132f83b |
comparison
equal
deleted
inserted
replaced
8056:57b81d6c3641 | 8076:c59b7900a2bd |
---|---|
1479 // public static double Math.log10(double) | 1479 // public static double Math.log10(double) |
1480 bool LibraryCallKit::inline_math(vmIntrinsics::ID id) { | 1480 bool LibraryCallKit::inline_math(vmIntrinsics::ID id) { |
1481 Node* arg = round_double_node(argument(0)); | 1481 Node* arg = round_double_node(argument(0)); |
1482 Node* n; | 1482 Node* n; |
1483 switch (id) { | 1483 switch (id) { |
1484 case vmIntrinsics::_dabs: n = new (C) AbsDNode( arg); break; | 1484 case vmIntrinsics::_dabs: n = new (C) AbsDNode( arg); break; |
1485 case vmIntrinsics::_dsqrt: n = new (C) SqrtDNode(0, arg); break; | 1485 case vmIntrinsics::_dsqrt: n = new (C) SqrtDNode(C, control(), arg); break; |
1486 case vmIntrinsics::_dlog: n = new (C) LogDNode( arg); break; | 1486 case vmIntrinsics::_dlog: n = new (C) LogDNode(C, control(), arg); break; |
1487 case vmIntrinsics::_dlog10: n = new (C) Log10DNode( arg); break; | 1487 case vmIntrinsics::_dlog10: n = new (C) Log10DNode(C, control(), arg); break; |
1488 default: fatal_unexpected_iid(id); break; | 1488 default: fatal_unexpected_iid(id); break; |
1489 } | 1489 } |
1490 set_result(_gvn.transform(n)); | 1490 set_result(_gvn.transform(n)); |
1491 return true; | 1491 return true; |
1492 } | 1492 } |
1497 bool LibraryCallKit::inline_trig(vmIntrinsics::ID id) { | 1497 bool LibraryCallKit::inline_trig(vmIntrinsics::ID id) { |
1498 Node* arg = round_double_node(argument(0)); | 1498 Node* arg = round_double_node(argument(0)); |
1499 Node* n = NULL; | 1499 Node* n = NULL; |
1500 | 1500 |
1501 switch (id) { | 1501 switch (id) { |
1502 case vmIntrinsics::_dsin: n = new (C) SinDNode(arg); break; | 1502 case vmIntrinsics::_dsin: n = new (C) SinDNode(C, control(), arg); break; |
1503 case vmIntrinsics::_dcos: n = new (C) CosDNode(arg); break; | 1503 case vmIntrinsics::_dcos: n = new (C) CosDNode(C, control(), arg); break; |
1504 case vmIntrinsics::_dtan: n = new (C) TanDNode(arg); break; | 1504 case vmIntrinsics::_dtan: n = new (C) TanDNode(C, control(), arg); break; |
1505 default: fatal_unexpected_iid(id); break; | 1505 default: fatal_unexpected_iid(id); break; |
1506 } | 1506 } |
1507 n = _gvn.transform(n); | 1507 n = _gvn.transform(n); |
1508 | 1508 |
1509 // Rounding required? Check for argument reduction! | 1509 // Rounding required? Check for argument reduction! |