aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/chaitin.cpp
diff options
context:
space:
mode:
authorkvn <none@none>2009-02-06 13:31:03 -0800
committerkvn <none@none>2009-02-06 13:31:03 -0800
commit370ced2059af8ea7185e13ba0a8d6a6cb73542f8 (patch)
treedeed0ff4bcd880677e5ebd12fc2f671664eb0c0b /src/share/vm/opto/chaitin.cpp
parent4ebd0c3762db446bd36e88b1b372cd4f56a7e001 (diff)
6791852: assert(b->_nodes[insidx] == n,"got insidx set incorrectly")
Summary: Move the CreateEx up before each round of IFG construction Reviewed-by: never, phh
Diffstat (limited to 'src/share/vm/opto/chaitin.cpp')
-rw-r--r--src/share/vm/opto/chaitin.cpp26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/share/vm/opto/chaitin.cpp b/src/share/vm/opto/chaitin.cpp
index 3d98f65d6..82558d8f5 100644
--- a/src/share/vm/opto/chaitin.cpp
+++ b/src/share/vm/opto/chaitin.cpp
@@ -228,6 +228,11 @@ void PhaseChaitin::Register_Allocate() {
// them for real.
de_ssa();
+#ifdef ASSERT
+ // Veify the graph before RA.
+ verify(&live_arena);
+#endif
+
{
NOT_PRODUCT( Compile::TracePhase t3("computeLive", &_t_computeLive, TimeCompiler); )
_live = NULL; // Mark live as being not available
@@ -306,12 +311,6 @@ void PhaseChaitin::Register_Allocate() {
C->check_node_count(2*NodeLimitFudgeFactor, "out of nodes after physical split");
if (C->failing()) return;
-#ifdef ASSERT
- if( VerifyOpto || VerifyRegisterAllocator ) {
- _cfg.verify();
- verify_base_ptrs(&live_arena);
- }
-#endif
NOT_PRODUCT( C->verify_graph_edges(); )
compact(); // Compact LRGs; return new lower max lrg
@@ -340,7 +339,7 @@ void PhaseChaitin::Register_Allocate() {
compress_uf_map_for_nodes();
#ifdef ASSERT
- if( VerifyOpto || VerifyRegisterAllocator ) _ifg->verify(this);
+ verify(&live_arena, true);
#endif
} else {
ifg.SquareUp();
@@ -376,12 +375,6 @@ void PhaseChaitin::Register_Allocate() {
// Bail out if unique gets too large (ie - unique > MaxNodeLimit - 2*NodeLimitFudgeFactor)
C->check_node_count(2*NodeLimitFudgeFactor, "out of nodes after split");
if (C->failing()) return;
-#ifdef ASSERT
- if( VerifyOpto || VerifyRegisterAllocator ) {
- _cfg.verify();
- verify_base_ptrs(&live_arena);
- }
-#endif
compact(); // Compact LRGs; return new lower max lrg
@@ -412,7 +405,7 @@ void PhaseChaitin::Register_Allocate() {
}
compress_uf_map_for_nodes();
#ifdef ASSERT
- if( VerifyOpto || VerifyRegisterAllocator ) _ifg->verify(this);
+ verify(&live_arena, true);
#endif
cache_lrg_info(); // Count degree of LRGs
@@ -432,6 +425,11 @@ void PhaseChaitin::Register_Allocate() {
// Peephole remove copies
post_allocate_copy_removal();
+#ifdef ASSERT
+ // Veify the graph after RA.
+ verify(&live_arena);
+#endif
+
// max_reg is past the largest *register* used.
// Convert that to a frame_slot number.
if( _max_reg <= _matcher._new_SP )