equal
deleted
inserted
replaced
530 const Type* RoundDoubleNode::Value(PhaseGVN* phase) const { |
530 const Type* RoundDoubleNode::Value(PhaseGVN* phase) const { |
531 return phase->type( in(1) ); |
531 return phase->type( in(1) ); |
532 } |
532 } |
533 |
533 |
534 //============================================================================= |
534 //============================================================================= |
|
535 RoundDoubleModeNode* RoundDoubleModeNode::make(PhaseGVN& gvn, Node* arg, RoundDoubleModeNode::RoundingMode rmode) { |
|
536 ConINode* rm = gvn.intcon(rmode); |
|
537 return new RoundDoubleModeNode(arg, (Node *)rm); |
|
538 } |
|
539 |
535 //------------------------------Identity--------------------------------------- |
540 //------------------------------Identity--------------------------------------- |
536 // Remove redundant roundings. |
541 // Remove redundant roundings. |
537 Node* RoundDoubleModeNode::Identity(PhaseGVN* phase) { |
542 Node* RoundDoubleModeNode::Identity(PhaseGVN* phase) { |
538 int op = in(1)->Opcode(); |
543 int op = in(1)->Opcode(); |
539 // Redundant rounding e.g. floor(ceil(n)) -> ceil(n) |
544 // Redundant rounding e.g. floor(ceil(n)) -> ceil(n) |