src/share/vm/c1/c1_Compiler.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8132457 Sdiff src/share/vm/c1

src/share/vm/c1/c1_Compiler.cpp

Print this page




 222   case vmIntrinsics::_putLongUnaligned:
 223   case vmIntrinsics::_checkIndex:
 224   case vmIntrinsics::_updateCRC32:
 225   case vmIntrinsics::_updateBytesCRC32:
 226   case vmIntrinsics::_updateByteBufferCRC32:
 227   case vmIntrinsics::_compareAndSwapInt:
 228   case vmIntrinsics::_compareAndSwapObject:
 229 #ifdef TRACE_HAVE_INTRINSICS
 230   case vmIntrinsics::_classID:
 231   case vmIntrinsics::_threadID:
 232   case vmIntrinsics::_counterTime:
 233 #endif
 234     break;
 235   default:
 236     return false; // Intrinsics not on the previous list are not available.
 237   }
 238 
 239   return true;
 240 }
 241 
 242 bool Compiler::is_intrinsic_disabled_by_flag(methodHandle method) {
 243   vmIntrinsics::ID id = method->intrinsic_id();
 244   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 245 
 246   if (vmIntrinsics::is_disabled_by_flags(id)) {
 247     return true;
 248   }
 249 
 250   if (!InlineNatives && id != vmIntrinsics::_Reference_get) {
 251     return true;
 252   }
 253 
 254   if (!InlineClassNatives && id == vmIntrinsics::_getClass) {
 255     return true;
 256   }
 257 
 258   return false;
 259 }
 260 
 261 void Compiler::compile_method(ciEnv* env, ciMethod* method, int entry_bci) {
 262   BufferBlob* buffer_blob = CompilerThread::current()->get_buffer_blob();
 263   assert(buffer_blob != NULL, "Must exist");
 264   // invoke compilation
 265   {
 266     // We are nested here because we need for the destructor
 267     // of Compilation to occur before we release the any
 268     // competing compiler thread
 269     ResourceMark rm;
 270     Compilation c(this, env, method, entry_bci, buffer_blob);
 271   }
 272 }
 273 
 274 
 275 void Compiler::print_timers() {
 276   Compilation::print_timers();
 277 }
 278 
 279 bool Compiler::is_intrinsic_available(methodHandle method, methodHandle compilation_context) {
 280   return is_intrinsic_supported(method) && !is_intrinsic_disabled_by_flag(method);
 281 }


 222   case vmIntrinsics::_putLongUnaligned:
 223   case vmIntrinsics::_checkIndex:
 224   case vmIntrinsics::_updateCRC32:
 225   case vmIntrinsics::_updateBytesCRC32:
 226   case vmIntrinsics::_updateByteBufferCRC32:
 227   case vmIntrinsics::_compareAndSwapInt:
 228   case vmIntrinsics::_compareAndSwapObject:
 229 #ifdef TRACE_HAVE_INTRINSICS
 230   case vmIntrinsics::_classID:
 231   case vmIntrinsics::_threadID:
 232   case vmIntrinsics::_counterTime:
 233 #endif
 234     break;
 235   default:
 236     return false; // Intrinsics not on the previous list are not available.
 237   }
 238 
 239   return true;
 240 }
 241 



















 242 void Compiler::compile_method(ciEnv* env, ciMethod* method, int entry_bci) {
 243   BufferBlob* buffer_blob = CompilerThread::current()->get_buffer_blob();
 244   assert(buffer_blob != NULL, "Must exist");
 245   // invoke compilation
 246   {
 247     // We are nested here because we need for the destructor
 248     // of Compilation to occur before we release the any
 249     // competing compiler thread
 250     ResourceMark rm;
 251     Compilation c(this, env, method, entry_bci, buffer_blob);
 252   }
 253 }
 254 
 255 
 256 void Compiler::print_timers() {
 257   Compilation::print_timers();




 258 }
src/share/vm/c1/c1_Compiler.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File