< prev index next >

src/share/vm/opto/lcm.cpp

Print this page
rev 9088 : 8139040: Fix initializations before ShouldNotReachHere() etc. and enable -Wuninitialized on linux.


 789       int m_cnt = ready_cnt.at(m->_idx) - 1;
 790       ready_cnt.at_put(m->_idx, m_cnt);
 791       if( m_cnt == 0 )
 792         worklist.push(m);
 793     }
 794 
 795   }
 796 
 797   // Act as if the call defines the Frame Pointer.
 798   // Certainly the FP is alive and well after the call.
 799   regs.Insert(_matcher.c_frame_pointer());
 800 
 801   // Set all registers killed and not already defined by the call.
 802   uint r_cnt = mcall->tf()->range()->cnt();
 803   int op = mcall->ideal_Opcode();
 804   MachProjNode *proj = new MachProjNode( mcall, r_cnt+1, RegMask::Empty, MachProjNode::fat_proj );
 805   map_node_to_block(proj, block);
 806   block->insert_node(proj, node_cnt++);
 807 
 808   // Select the right register save policy.
 809   const char * save_policy;
 810   switch (op) {
 811     case Op_CallRuntime:
 812     case Op_CallLeaf:
 813     case Op_CallLeafNoFP:
 814       // Calling C code so use C calling convention
 815       save_policy = _matcher._c_reg_save_policy;
 816       break;
 817 
 818     case Op_CallStaticJava:
 819     case Op_CallDynamicJava:
 820       // Calling Java code so use Java calling convention
 821       save_policy = _matcher._register_save_policy;
 822       break;
 823 
 824     default:
 825       ShouldNotReachHere();
 826   }
 827 
 828   // When using CallRuntime mark SOE registers as killed by the call
 829   // so values that could show up in the RegisterMap aren't live in a




 789       int m_cnt = ready_cnt.at(m->_idx) - 1;
 790       ready_cnt.at_put(m->_idx, m_cnt);
 791       if( m_cnt == 0 )
 792         worklist.push(m);
 793     }
 794 
 795   }
 796 
 797   // Act as if the call defines the Frame Pointer.
 798   // Certainly the FP is alive and well after the call.
 799   regs.Insert(_matcher.c_frame_pointer());
 800 
 801   // Set all registers killed and not already defined by the call.
 802   uint r_cnt = mcall->tf()->range()->cnt();
 803   int op = mcall->ideal_Opcode();
 804   MachProjNode *proj = new MachProjNode( mcall, r_cnt+1, RegMask::Empty, MachProjNode::fat_proj );
 805   map_node_to_block(proj, block);
 806   block->insert_node(proj, node_cnt++);
 807 
 808   // Select the right register save policy.
 809   const char *save_policy = NULL;
 810   switch (op) {
 811     case Op_CallRuntime:
 812     case Op_CallLeaf:
 813     case Op_CallLeafNoFP:
 814       // Calling C code so use C calling convention
 815       save_policy = _matcher._c_reg_save_policy;
 816       break;
 817 
 818     case Op_CallStaticJava:
 819     case Op_CallDynamicJava:
 820       // Calling Java code so use Java calling convention
 821       save_policy = _matcher._register_save_policy;
 822       break;
 823 
 824     default:
 825       ShouldNotReachHere();
 826   }
 827 
 828   // When using CallRuntime mark SOE registers as killed by the call
 829   // so values that could show up in the RegisterMap aren't live in a


< prev index next >