hotspot/src/share/vm/opto/library_call.cpp

Print this page

        

*** 44,66 **** // Extend the set of intrinsics known to the runtime: public: private: bool _is_virtual; bool _is_predicted; vmIntrinsics::ID _intrinsic_id; public: ! LibraryIntrinsic(ciMethod* m, bool is_virtual, bool is_predicted, vmIntrinsics::ID id) : InlineCallGenerator(m), _is_virtual(is_virtual), _is_predicted(is_predicted), _intrinsic_id(id) { } virtual bool is_intrinsic() const { return true; } virtual bool is_virtual() const { return _is_virtual; } virtual bool is_predicted() const { return _is_predicted; } virtual JVMState* generate(JVMState* jvms); virtual Node* generate_predicate(JVMState* jvms); vmIntrinsics::ID intrinsic_id() const { return _intrinsic_id; } }; --- 44,69 ---- // Extend the set of intrinsics known to the runtime: public: private: bool _is_virtual; bool _is_predicted; + bool _is_low_priority; vmIntrinsics::ID _intrinsic_id; public: ! LibraryIntrinsic(ciMethod* m, bool is_virtual, bool is_predicted, bool is_low_priority, vmIntrinsics::ID id) : InlineCallGenerator(m), _is_virtual(is_virtual), _is_predicted(is_predicted), + _is_low_priority(is_low_priority), _intrinsic_id(id) { } virtual bool is_intrinsic() const { return true; } virtual bool is_virtual() const { return _is_virtual; } virtual bool is_predicted() const { return _is_predicted; } + virtual bool is_low_priority() const { return _is_low_priority; } virtual JVMState* generate(JVMState* jvms); virtual Node* generate_predicate(JVMState* jvms); vmIntrinsics::ID intrinsic_id() const { return _intrinsic_id; } };
*** 350,359 **** --- 353,363 ---- return NULL; } } bool is_predicted = false; + bool is_low_priority = false; switch (id) { case vmIntrinsics::_compareTo: if (!SpecialStringCompareTo) return NULL; if (!Matcher::match_rule_supported(Op_StrComp)) return NULL;
*** 376,385 **** --- 380,390 ---- if (StubRoutines::unsafe_arraycopy() == NULL) return NULL; if (!InlineArrayCopy) return NULL; break; case vmIntrinsics::_hashCode: if (!InlineObjectHash) return NULL; + is_low_priority = true; break; case vmIntrinsics::_clone: case vmIntrinsics::_copyOf: case vmIntrinsics::_copyOfRange: if (!InlineObjectCopy) return NULL;
*** 527,537 **** // -XX:-InlineUnsafeOps disables natives from the Unsafe class. if (m->holder()->name() == ciSymbol::sun_misc_Unsafe()) { if (!InlineUnsafeOps) return NULL; } ! return new LibraryIntrinsic(m, is_virtual, is_predicted, (vmIntrinsics::ID) id); } //----------------------register_library_intrinsics----------------------- // Initialize this file's data structures, for each Compile instance. void Compile::register_library_intrinsics() { --- 532,542 ---- // -XX:-InlineUnsafeOps disables natives from the Unsafe class. if (m->holder()->name() == ciSymbol::sun_misc_Unsafe()) { if (!InlineUnsafeOps) return NULL; } ! return new LibraryIntrinsic(m, is_virtual, is_predicted, is_low_priority, (vmIntrinsics::ID) id); } //----------------------register_library_intrinsics----------------------- // Initialize this file's data structures, for each Compile instance. void Compile::register_library_intrinsics() {