src/share/vm/opto/library_call.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/library_call.cpp Mon Aug 4 14:31:49 2014
--- new/src/share/vm/opto/library_call.cpp Mon Aug 4 14:31:49 2014
*** 1903,1913 ****
--- 1903,1913 ----
Node* yplus1 = _gvn.transform(new AddDNode(y, makecon(TypeD::make(1))));
Node *cmpyplus1= _gvn.transform(new CmpDNode(yplus1, y));
Node *bolyplus1 = _gvn.transform(new BoolNode( cmpyplus1, BoolTest::eq ));
Node* correctedsign = NULL;
if (ConditionalMoveLimit != 0) {
! correctedsign = _gvn.transform( CMoveNode::make(C, NULL, bolyplus1, signnode, longcon(0), TypeLong::LONG));
} else {
IfNode *ifyplus1 = create_and_xform_if(ylong_path,bolyplus1, PROB_FAIR, COUNT_UNKNOWN);
RegionNode *r = new RegionNode(3);
Node *phi = new PhiNode(r, TypeLong::LONG);
r->init_req(1, _gvn.transform(new IfFalseNode(ifyplus1)));
*** 1932,1942 ****
--- 1932,1942 ----
// -abs(x)^y
Node *negabsxpowy = _gvn.transform(new NegDNode (absxpowy));
// (1&(long)y)==1?-DPow(abs(x), y):DPow(abs(x), y)
Node *signresult = NULL;
if (ConditionalMoveLimit != 0) {
! signresult = _gvn.transform( CMoveNode::make(C, NULL, bol3, absxpowy, negabsxpowy, Type::DOUBLE));
} else {
IfNode *ifyeven = create_and_xform_if(ylong_path,bol3, PROB_FAIR, COUNT_UNKNOWN);
RegionNode *r = new RegionNode(3);
Node *phi = new PhiNode(r, Type::DOUBLE);
r->init_req(1, _gvn.transform(new IfFalseNode(ifyeven)));
*** 2266,2276 ****
--- 2266,2276 ----
// Use a flow-free graph structure, to avoid creating excess control edges
// which could hinder other optimizations.
// Since Math.min/max is often used with arraycopy, we want
// tightly_coupled_allocation to be able to see beyond min/max expressions.
- Node* cmov = CMoveNode::make(C, NULL, best_bol,
answer_if_false, answer_if_true,
TypeInt::make(lo, hi, widen));
return _gvn.transform(cmov);
src/share/vm/opto/library_call.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File