1.1 --- a/src/share/vm/opto/callnode.hpp Fri Dec 21 10:27:49 2012 -0800 1.2 +++ b/src/share/vm/opto/callnode.hpp Sun Dec 23 17:08:22 2012 +0100 1.3 @@ -507,6 +507,7 @@ 1.4 Node* exobj; 1.5 }; 1.6 1.7 +class CallGenerator; 1.8 1.9 //------------------------------CallNode--------------------------------------- 1.10 // Call nodes now subsume the function of debug nodes at callsites, so they 1.11 @@ -517,26 +518,31 @@ 1.12 const TypeFunc *_tf; // Function type 1.13 address _entry_point; // Address of method being called 1.14 float _cnt; // Estimate of number of times called 1.15 + CallGenerator* _generator; // corresponding CallGenerator for some late inline calls 1.16 1.17 CallNode(const TypeFunc* tf, address addr, const TypePtr* adr_type) 1.18 : SafePointNode(tf->domain()->cnt(), NULL, adr_type), 1.19 _tf(tf), 1.20 _entry_point(addr), 1.21 - _cnt(COUNT_UNKNOWN) 1.22 + _cnt(COUNT_UNKNOWN), 1.23 + _generator(NULL) 1.24 { 1.25 init_class_id(Class_Call); 1.26 } 1.27 1.28 - const TypeFunc* tf() const { return _tf; } 1.29 - const address entry_point() const { return _entry_point; } 1.30 - const float cnt() const { return _cnt; } 1.31 + const TypeFunc* tf() const { return _tf; } 1.32 + const address entry_point() const { return _entry_point; } 1.33 + const float cnt() const { return _cnt; } 1.34 + CallGenerator* generator() const { return _generator; } 1.35 1.36 - void set_tf(const TypeFunc* tf) { _tf = tf; } 1.37 - void set_entry_point(address p) { _entry_point = p; } 1.38 - void set_cnt(float c) { _cnt = c; } 1.39 + void set_tf(const TypeFunc* tf) { _tf = tf; } 1.40 + void set_entry_point(address p) { _entry_point = p; } 1.41 + void set_cnt(float c) { _cnt = c; } 1.42 + void set_generator(CallGenerator* cg) { _generator = cg; } 1.43 1.44 virtual const Type *bottom_type() const; 1.45 virtual const Type *Value( PhaseTransform *phase ) const; 1.46 + virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); 1.47 virtual Node *Identity( PhaseTransform *phase ) { return this; } 1.48 virtual uint cmp( const Node &n ) const; 1.49 virtual uint size_of() const = 0;