< prev index next >
src/hotspot/share/opto/callGenerator.cpp
Print this page
@@ -568,10 +568,32 @@
CallGenerator* CallGenerator::for_boxing_late_inline(ciMethod* method, CallGenerator* inline_cg) {
return new LateInlineBoxingCallGenerator(method, inline_cg);
}
+class LateInlineVectorReboxingCallGenerator : public LateInlineCallGenerator {
+
+ public:
+ LateInlineVectorReboxingCallGenerator(ciMethod* method, CallGenerator* inline_cg) :
+ LateInlineCallGenerator(method, inline_cg, /*is_pure=*/true) {}
+
+ virtual JVMState* generate(JVMState* jvms) {
+ Compile *C = Compile::current();
+
+ C->log_inline_id(this);
+
+ C->add_vector_reboxing_late_inline(this);
+
+ JVMState* new_jvms = DirectCallGenerator::generate(jvms);
+ return new_jvms;
+ }
+};
+
+// static CallGenerator* for_vector_reboxing_late_inline(ciMethod* m, CallGenerator* inline_cg);
+CallGenerator* CallGenerator::for_vector_reboxing_late_inline(ciMethod* method, CallGenerator* inline_cg) {
+ return new LateInlineVectorReboxingCallGenerator(method, inline_cg);
+}
//---------------------------WarmCallGenerator--------------------------------
// Internal class which handles initial deferral of inlining decisions.
class WarmCallGenerator : public CallGenerator {
WarmCallInfo* _call_info;
CallGenerator* _if_cold;
< prev index next >