comparison src/share/vm/runtime/compilationPolicy.hpp @ 4825:20334ed5ed3c

7131259: compile_method and CompilationPolicy::event shouldn't be declared TRAPS Summary: Make sure that CompilationPolicy::event() doesn't throw exceptions Reviewed-by: kvn, never
author iveresov
date Thu, 26 Jan 2012 12:15:24 -0800
parents 43f9d800f276
children 33df1aeaebbf d2a62e0f25eb
comparison
equal deleted inserted replaced
4824:5dbed2f542ff 4825:20334ed5ed3c
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