comparison src/share/vm/compiler/compileBroker.cpp @ 2891:75a99b4f1c98

Rebranded C++ part from C1X to Graal.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 08 Jun 2011 14:01:51 +0200
parents e88293edf07c
children d577d07cedec
comparison
equal deleted inserted replaced
2890:c23d45daff9b 2891:75a99b4f1c98
42 #include "runtime/javaCalls.hpp" 42 #include "runtime/javaCalls.hpp"
43 #include "runtime/os.hpp" 43 #include "runtime/os.hpp"
44 #include "runtime/sharedRuntime.hpp" 44 #include "runtime/sharedRuntime.hpp"
45 #include "runtime/sweeper.hpp" 45 #include "runtime/sweeper.hpp"
46 #include "utilities/dtrace.hpp" 46 #include "utilities/dtrace.hpp"
47 #include "c1x/c1x_Compiler.hpp" 47 #include "graal/graalCompiler.hpp"
48 #ifdef COMPILER1 48 #ifdef COMPILER1
49 #include "c1/c1_Compiler.hpp" 49 #include "c1/c1_Compiler.hpp"
50 #endif 50 #endif
51 #ifdef COMPILER2 51 #ifdef COMPILER2
52 #include "opto/c2compiler.hpp" 52 #include "opto/c2compiler.hpp"
625 _perf_compiles = PerfDataManager::create_counter(SUN_CI, name, 625 _perf_compiles = PerfDataManager::create_counter(SUN_CI, name,
626 PerfData::U_Events, CHECK); 626 PerfData::U_Events, CHECK);
627 } 627 }
628 } 628 }
629 629
630 // Bootstrap the C1X compiler. Compiles all methods until compile queue is empty and no compilation is active. 630 // Bootstrap the graal compiler. Compiles all methods until compile queue is empty and no compilation is active.
631 void CompileBroker::bootstrap_c1x() { 631 void CompileBroker::bootstrap_graal() {
632 HandleMark hm; 632 HandleMark hm;
633 Thread* THREAD = Thread::current(); 633 Thread* THREAD = Thread::current();
634 tty->print_cr("Bootstrapping C1X...."); 634 tty->print_cr("Bootstrapping graal....");
635 635
636 C1XCompiler* compiler = C1XCompiler::instance(); 636 GraalCompiler* compiler = GraalCompiler::instance();
637 if (compiler == NULL) fatal("must use flag -XX:+UseC1X"); 637 if (compiler == NULL) fatal("must use flag -XX:+UseGraal");
638 638
639 jlong start = os::javaTimeMillis(); 639 jlong start = os::javaTimeMillis();
640 640
641 instanceKlass* klass = (instanceKlass*)SystemDictionary::Object_klass()->klass_part(); 641 instanceKlass* klass = (instanceKlass*)SystemDictionary::Object_klass()->klass_part();
642 methodOop method = klass->find_method(vmSymbols::object_initializer_name(), vmSymbols::void_method_signature()); 642 methodOop method = klass->find_method(vmSymbols::object_initializer_name(), vmSymbols::void_method_signature());
658 bool compiling = false; 658 bool compiling = false;
659 while (current != NULL) { 659 while (current != NULL) {
660 if (current->is_Compiler_thread()) { 660 if (current->is_Compiler_thread()) {
661 CompilerThread* comp_thread = current->as_CompilerThread(); 661 CompilerThread* comp_thread = current->as_CompilerThread();
662 if (comp_thread->is_compiling()) { 662 if (comp_thread->is_compiling()) {
663 if (TraceC1X >= 4) { 663 if (Tracegraal >= 4) {
664 tty->print_cr("Compile queue empty, but following thread is still compiling:"); 664 tty->print_cr("Compile queue empty, but following thread is still compiling:");
665 comp_thread->print(); 665 comp_thread->print();
666 } 666 }
667 compiling = true; 667 compiling = true;
668 } 668 }
671 } 671 }
672 if (!compiling) { 672 if (!compiling) {
673 break; 673 break;
674 } 674 }
675 } 675 }
676 if (TraceC1X >= 5) { 676 if (Tracegraal >= 5) {
677 _c1_method_queue->print(); 677 _c1_method_queue->print();
678 } 678 }
679 } 679 }
680 680
681 { 681 {
705 #ifndef SHARK 705 #ifndef SHARK
706 // Set the interface to the current compiler(s). 706 // Set the interface to the current compiler(s).
707 int c1_count = CompilationPolicy::policy()->compiler_count(CompLevel_simple); 707 int c1_count = CompilationPolicy::policy()->compiler_count(CompLevel_simple);
708 int c2_count = CompilationPolicy::policy()->compiler_count(CompLevel_full_optimization); 708 int c2_count = CompilationPolicy::policy()->compiler_count(CompLevel_full_optimization);
709 #ifdef COMPILER1 709 #ifdef COMPILER1
710 if (UseC1X) { 710 if (UseGraal) {
711 _compilers[0] = new C1XCompiler(); 711 _compilers[0] = new GraalCompiler();
712 } else if (c1_count > 0) { 712 } else if (c1_count > 0) {
713 _compilers[0] = new Compiler(); 713 _compilers[0] = new Compiler();
714 } 714 }
715 #ifndef COMPILER2 715 #ifndef COMPILER2
716 _compilers[1] = _compilers[0]; 716 _compilers[1] = _compilers[0];
1062 { 1062 {
1063 MutexLocker locker(queue->lock(), THREAD); 1063 MutexLocker locker(queue->lock(), THREAD);
1064 1064
1065 if (Thread::current()->is_Compiler_thread() && CompilerThread::current()->is_compiling() && !BackgroundCompilation) { 1065 if (Thread::current()->is_Compiler_thread() && CompilerThread::current()->is_compiling() && !BackgroundCompilation) {
1066 1066
1067 TRACE_C1X_1("Recursive compile %s!", method->name_and_sig_as_C_string()); 1067 TRACE_graal_1("Recursive compile %s!", method->name_and_sig_as_C_string());
1068 method->set_not_compilable(); 1068 method->set_not_compilable();
1069 return; 1069 return;
1070 } 1070 }
1071 1071
1072 // Make sure the method has not slipped into the queues since 1072 // Make sure the method has not slipped into the queues since