comparison src/share/vm/runtime/compilationPolicy.hpp @ 4970:33df1aeaebbf

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 13:10:13 +0100
parents 04b9a2566eec 20334ed5ed3c
children 43d5ae1051f7
comparison
equal deleted inserted replaced
4703:2cfb7fb2dce7 4970:33df1aeaebbf
62 // Return initial compile level that is used with Xcomp 62 // Return initial compile level that is used with Xcomp
63 virtual CompLevel initial_compile_level() = 0; 63 virtual CompLevel initial_compile_level() = 0;
64 virtual int compiler_count(CompLevel comp_level) = 0; 64 virtual int compiler_count(CompLevel comp_level) = 0;
65 // main notification entry, return a pointer to an nmethod if the OSR is required, 65 // main notification entry, return a pointer to an nmethod if the OSR is required,
66 // returns NULL otherwise. 66 // returns NULL otherwise.
67 virtual nmethod* event(methodHandle method, methodHandle inlinee, int branch_bci, int bci, CompLevel comp_level, nmethod* nm, TRAPS) = 0; 67 virtual nmethod* event(methodHandle method, methodHandle inlinee, int branch_bci, int bci, CompLevel comp_level, nmethod* nm, JavaThread* thread) = 0;
68 // safepoint() is called at the end of the safepoint 68 // safepoint() is called at the end of the safepoint
69 virtual void do_safepoint_work() = 0; 69 virtual void do_safepoint_work() = 0;
70 // reprofile request 70 // reprofile request
71 virtual void reprofile(ScopeDesc* trap_scope, bool is_osr) = 0; 71 virtual void reprofile(ScopeDesc* trap_scope, bool is_osr) = 0;
72 // delay_compilation(method) can be called by any component of the runtime to notify the policy 72 // delay_compilation(method) can be called by any component of the runtime to notify the policy
103 virtual void delay_compilation(methodOop method); 103 virtual void delay_compilation(methodOop method);
104 virtual void disable_compilation(methodOop method); 104 virtual void disable_compilation(methodOop method);
105 virtual bool is_mature(methodOop method); 105 virtual bool is_mature(methodOop method);
106 virtual void initialize(); 106 virtual void initialize();
107 virtual CompileTask* select_task(CompileQueue* compile_queue); 107 virtual CompileTask* select_task(CompileQueue* compile_queue);
108 virtual nmethod* event(methodHandle method, methodHandle inlinee, int branch_bci, int bci, CompLevel comp_level, nmethod* nm, TRAPS); 108 virtual nmethod* event(methodHandle method, methodHandle inlinee, int branch_bci, int bci, CompLevel comp_level, nmethod* nm, JavaThread* thread);
109 virtual void method_invocation_event(methodHandle m, TRAPS) = 0; 109 virtual void method_invocation_event(methodHandle m, JavaThread* thread) = 0;
110 virtual void method_back_branch_event(methodHandle m, int bci, TRAPS) = 0; 110 virtual void method_back_branch_event(methodHandle m, int bci, JavaThread* thread) = 0;
111 }; 111 };
112 112
113 class SimpleCompPolicy : public NonTieredCompPolicy { 113 class SimpleCompPolicy : public NonTieredCompPolicy {
114 public: 114 public:
115 virtual void method_invocation_event(methodHandle m, TRAPS); 115 virtual void method_invocation_event(methodHandle m, JavaThread* thread);
116 virtual void method_back_branch_event(methodHandle m, int bci, TRAPS); 116 virtual void method_back_branch_event(methodHandle m, int bci, JavaThread* thread);
117 }; 117 };
118 118
119 // StackWalkCompPolicy - existing C2 policy 119 // StackWalkCompPolicy - existing C2 policy
120 120
121 //#ifdef COMPILER2 121 //#ifdef COMPILER2
122 class StackWalkCompPolicy : public NonTieredCompPolicy { 122 class StackWalkCompPolicy : public NonTieredCompPolicy {
123 public: 123 public:
124 virtual void method_invocation_event(methodHandle m, TRAPS); 124 virtual void method_invocation_event(methodHandle m, JavaThread* thread);
125 virtual void method_back_branch_event(methodHandle m, int bci, TRAPS); 125 virtual void method_back_branch_event(methodHandle m, int bci, JavaThread* thread);
126 126
127 private: 127 private:
128 RFrame* findTopInlinableFrame(GrowableArray<RFrame*>* stack); 128 RFrame* findTopInlinableFrame(GrowableArray<RFrame*>* stack);
129 RFrame* senderOf(RFrame* rf, GrowableArray<RFrame*>* stack); 129 RFrame* senderOf(RFrame* rf, GrowableArray<RFrame*>* stack);
130 130