Mercurial > hg > truffle
comparison src/share/vm/opto/compile.cpp @ 222:2a1a77d3458f
6718676: putback for 6604014 is incomplete
Reviewed-by: kvn, jrose
author | never |
---|---|
date | Tue, 24 Jun 2008 16:00:14 -0700 |
parents | 1e026f8da827 |
children | 1dd146f17531 |
comparison
equal
deleted
inserted
replaced
221:1e026f8da827 | 222:2a1a77d3458f |
---|---|
311 Type::Initialize(compile); | 311 Type::Initialize(compile); |
312 _compile->set_scratch_buffer_blob(NULL); | 312 _compile->set_scratch_buffer_blob(NULL); |
313 _compile->begin_method(); | 313 _compile->begin_method(); |
314 } | 314 } |
315 CompileWrapper::~CompileWrapper() { | 315 CompileWrapper::~CompileWrapper() { |
316 if (_compile->failing()) { | |
317 _compile->print_method("Failed"); | |
318 } | |
319 _compile->end_method(); | 316 _compile->end_method(); |
320 if (_compile->scratch_buffer_blob() != NULL) | 317 if (_compile->scratch_buffer_blob() != NULL) |
321 BufferBlob::free(_compile->scratch_buffer_blob()); | 318 BufferBlob::free(_compile->scratch_buffer_blob()); |
322 _compile->env()->set_compiler_data(NULL); | 319 _compile->env()->set_compiler_data(NULL); |
323 } | 320 } |
601 } | 598 } |
602 // Now optimize | 599 // Now optimize |
603 Optimize(); | 600 Optimize(); |
604 if (failing()) return; | 601 if (failing()) return; |
605 NOT_PRODUCT( verify_graph_edges(); ) | 602 NOT_PRODUCT( verify_graph_edges(); ) |
603 | |
604 print_method("Before Matching"); | |
606 | 605 |
607 #ifndef PRODUCT | 606 #ifndef PRODUCT |
608 if (PrintIdeal) { | 607 if (PrintIdeal) { |
609 ttyLocker ttyl; // keep the following output all in one block | 608 ttyLocker ttyl; // keep the following output all in one block |
610 // This output goes directly to the tty, not the compiler log. | 609 // This output goes directly to the tty, not the compiler log. |
1479 ResourceMark rm; | 1478 ResourceMark rm; |
1480 int loop_opts_cnt; | 1479 int loop_opts_cnt; |
1481 | 1480 |
1482 NOT_PRODUCT( verify_graph_edges(); ) | 1481 NOT_PRODUCT( verify_graph_edges(); ) |
1483 | 1482 |
1484 print_method("Start"); | 1483 print_method("After Parsing"); |
1485 | 1484 |
1486 { | 1485 { |
1487 // Iterative Global Value Numbering, including ideal transforms | 1486 // Iterative Global Value Numbering, including ideal transforms |
1488 // Initialize IterGVN with types and values from parse-time GVN | 1487 // Initialize IterGVN with types and values from parse-time GVN |
1489 PhaseIterGVN igvn(initial_gvn()); | 1488 PhaseIterGVN igvn(initial_gvn()); |
1686 TracePhase t2a("output", &_t_output, true); | 1685 TracePhase t2a("output", &_t_output, true); |
1687 NOT_PRODUCT( TraceTime t2b(NULL, &_t_codeGeneration, TimeCompiler, false); ) | 1686 NOT_PRODUCT( TraceTime t2b(NULL, &_t_codeGeneration, TimeCompiler, false); ) |
1688 Output(); | 1687 Output(); |
1689 } | 1688 } |
1690 | 1689 |
1691 print_method("End"); | 1690 print_method("Final Code"); |
1692 | 1691 |
1693 // He's dead, Jim. | 1692 // He's dead, Jim. |
1694 _cfg = (PhaseCFG*)0xdeadbeef; | 1693 _cfg = (PhaseCFG*)0xdeadbeef; |
1695 _regalloc = (PhaseChaitin*)0xdeadbeef; | 1694 _regalloc = (PhaseChaitin*)0xdeadbeef; |
1696 } | 1695 } |
2464 } | 2463 } |
2465 if (_failure_reason == NULL) { | 2464 if (_failure_reason == NULL) { |
2466 // Record the first failure reason. | 2465 // Record the first failure reason. |
2467 _failure_reason = reason; | 2466 _failure_reason = reason; |
2468 } | 2467 } |
2468 if (!C->failure_reason_is(C2Compiler::retry_no_subsuming_loads())) { | |
2469 C->print_method(_failure_reason); | |
2470 } | |
2469 _root = NULL; // flush the graph, too | 2471 _root = NULL; // flush the graph, too |
2470 } | 2472 } |
2471 | 2473 |
2472 Compile::TracePhase::TracePhase(const char* name, elapsedTimer* accumulator, bool dolog) | 2474 Compile::TracePhase::TracePhase(const char* name, elapsedTimer* accumulator, bool dolog) |
2473 : TraceTime(NULL, accumulator, false NOT_PRODUCT( || TimeCompiler ), false) | 2475 : TraceTime(NULL, accumulator, false NOT_PRODUCT( || TimeCompiler ), false) |