--- old/src/share/vm/c1/c1_GraphBuilder.hpp 2015-07-13 18:44:15.471641039 +0200 +++ new/src/share/vm/c1/c1_GraphBuilder.hpp 2015-07-13 18:44:15.147641030 +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(Method* m); + static bool intrinsic_can_trap(Method* m); + 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