--- old/src/share/vm/c1/c1_GraphBuilder.hpp 2015-07-14 18:39:24.431577160 +0200 +++ new/src/share/vm/c1/c1_GraphBuilder.hpp 2015-07-14 18:39:24.075577151 +0200 @@ -339,6 +339,10 @@ void inline_sync_entry(Value lock, BlockBegin* sync_handler); void fill_sync_handler(Value lock, BlockBegin* sync_handler, bool default_handler = false); + static bool intrinsic_preserves_state(vmIntrinsics::ID id); + static bool intrinsic_can_trap(vmIntrinsics::ID id); + void build_graph_for_intrinsic(ciMethod* callee); + // inliners bool try_inline( ciMethod* callee, bool holder_known, Bytecodes::Code bc = Bytecodes::_illegal, Value receiver = NULL); bool try_inline_intrinsics(ciMethod* callee); @@ -364,12 +368,12 @@ void pop_scope(); void pop_scope_for_jsr(); - bool append_unsafe_get_obj(ciMethod* callee, BasicType t, bool is_volatile); - bool append_unsafe_put_obj(ciMethod* callee, BasicType t, bool is_volatile); - bool append_unsafe_get_raw(ciMethod* callee, BasicType t); - bool append_unsafe_put_raw(ciMethod* callee, BasicType t); + void append_unsafe_get_obj(ciMethod* callee, BasicType t, bool is_volatile); + void append_unsafe_put_obj(ciMethod* callee, BasicType t, bool is_volatile); + void append_unsafe_get_raw(ciMethod* callee, BasicType t); + void append_unsafe_put_raw(ciMethod* callee, BasicType t); void append_unsafe_CAS(ciMethod* callee); - bool append_unsafe_get_and_set_obj(ciMethod* callee, bool is_add); + void append_unsafe_get_and_set_obj(ciMethod* callee, bool is_add); void print_inlining(ciMethod* callee, const char* msg = NULL, bool success = true); @@ -412,6 +416,8 @@ static void sort_top_into_worklist(BlockList* worklist, BlockBegin* top); BlockBegin* start() const { return _start; } + + static bool is_intrinsic_available_for(Method* method); }; #endif // SHARE_VM_C1_C1_GRAPHBUILDER_HPP