src/share/vm/opto/callnode.hpp

Print this page
rev 3904 : 8005071: Incremental inlining for JSR 292
Summary: post parse inlining driven by number of live nodes.
Reviewed-by:

*** 505,530 **** Node* catchall_ioproj; Node* resproj; Node* exobj; }; //------------------------------CallNode--------------------------------------- // Call nodes now subsume the function of debug nodes at callsites, so they // contain the functionality of a full scope chain of debug nodes. class CallNode : public SafePointNode { friend class VMStructs; public: const TypeFunc *_tf; // Function type address _entry_point; // Address of method being called float _cnt; // Estimate of number of times called CallNode(const TypeFunc* tf, address addr, const TypePtr* adr_type) : SafePointNode(tf->domain()->cnt(), NULL, adr_type), _tf(tf), _entry_point(addr), ! _cnt(COUNT_UNKNOWN) { init_class_id(Class_Call); } const TypeFunc* tf() const { return _tf; } --- 505,533 ---- Node* catchall_ioproj; Node* resproj; Node* exobj; }; + class CallGenerator; //------------------------------CallNode--------------------------------------- // Call nodes now subsume the function of debug nodes at callsites, so they // contain the functionality of a full scope chain of debug nodes. class CallNode : public SafePointNode { friend class VMStructs; public: const TypeFunc *_tf; // Function type address _entry_point; // Address of method being called float _cnt; // Estimate of number of times called + CallGenerator* _cg; // corresponding CallGenerator for some late inline calls CallNode(const TypeFunc* tf, address addr, const TypePtr* adr_type) : SafePointNode(tf->domain()->cnt(), NULL, adr_type), _tf(tf), _entry_point(addr), ! _cnt(COUNT_UNKNOWN), ! _cg(NULL) { init_class_id(Class_Call); } const TypeFunc* tf() const { return _tf; }
*** 535,544 **** --- 538,548 ---- void set_entry_point(address p) { _entry_point = p; } void set_cnt(float c) { _cnt = c; } virtual const Type *bottom_type() const; virtual const Type *Value( PhaseTransform *phase ) const; + virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual Node *Identity( PhaseTransform *phase ) { return this; } virtual uint cmp( const Node &n ) const; virtual uint size_of() const = 0; virtual void calling_convention( BasicType* sig_bt, VMRegPair *parm_regs, uint argcnt ) const; virtual Node *match( const ProjNode *proj, const Matcher *m );