comparison agent/src/share/classes/sun/jvm/hotspot/opto/Block.java @ 14499:1077c8270209

8033260: assert(lrg._area >= 0.0) failed: negative spill area Summary: Change type from float to double on block frequency, and add check for +Inf - +Inf operation Reviewed-by: kvn, roland
author adlertz
date Tue, 25 Feb 2014 17:51:27 +0100
parents 79f492f184d0
children 4ca6dc0799b6
comparison
equal deleted inserted replaced
14498:04e7587c97dc 14499:1077c8270209
46 succsField = type.getAddressField("_succs"); 46 succsField = type.getAddressField("_succs");
47 numSuccsField = new CIntField(type.getCIntegerField("_num_succs"), 0); 47 numSuccsField = new CIntField(type.getCIntegerField("_num_succs"), 0);
48 preOrderField = new CIntField(type.getCIntegerField("_pre_order"), 0); 48 preOrderField = new CIntField(type.getCIntegerField("_pre_order"), 0);
49 domDepthField = new CIntField(type.getCIntegerField("_dom_depth"), 0); 49 domDepthField = new CIntField(type.getCIntegerField("_dom_depth"), 0);
50 idomField = type.getAddressField("_idom"); 50 idomField = type.getAddressField("_idom");
51 freqField = type.getJFloatField("_freq"); 51 freqField = type.getJDoubleField("_freq");
52 } 52 }
53 53
54 private static AddressField nodesField; 54 private static AddressField nodesField;
55 private static AddressField succsField; 55 private static AddressField succsField;
56 private static CIntField numSuccsField; 56 private static CIntField numSuccsField;
57 private static CIntField preOrderField; 57 private static CIntField preOrderField;
58 private static CIntField domDepthField; 58 private static CIntField domDepthField;
59 private static AddressField idomField; 59 private static AddressField idomField;
60 private static JFloatField freqField; 60 private static JDoubleField freqField;
61 61
62 public Block(Address addr) { 62 public Block(Address addr) {
63 super(addr); 63 super(addr);
64 } 64 }
65 65
66 public int preOrder() { 66 public int preOrder() {
67 return (int)preOrderField.getValue(getAddress()); 67 return (int)preOrderField.getValue(getAddress());
68 } 68 }
69 69
70 public float freq() { 70 public double freq() {
71 return (float)freqField.getValue(getAddress()); 71 return (double)freqField.getValue(getAddress());
72 } 72 }
73 73
74 public Node_List nodes() { 74 public Node_List nodes() {
75 return new Node_List(getAddress().addOffsetTo(nodesField.getOffset())); 75 return new Node_List(getAddress().addOffsetTo(nodesField.getOffset()));
76 } 76 }