< prev index next >

src/share/vm/opto/chaitin.cpp

Print this page
rev 10504 : value type calling convention


2173   return buf+strlen(buf);
2174 }
2175 
2176 void PhaseChaitin::dump_for_spill_split_recycle() const {
2177   if( WizardMode && (PrintCompilation || PrintOpto) ) {
2178     // Display which live ranges need to be split and the allocator's state
2179     tty->print_cr("Graph-Coloring Iteration %d will split the following live ranges", _trip_cnt);
2180     for (uint bidx = 1; bidx < _lrg_map.max_lrg_id(); bidx++) {
2181       if( lrgs(bidx).alive() && lrgs(bidx).reg() >= LRG::SPILL_REG ) {
2182         tty->print("L%d: ", bidx);
2183         lrgs(bidx).dump();
2184       }
2185     }
2186     tty->cr();
2187     dump();
2188   }
2189 }
2190 
2191 void PhaseChaitin::dump_frame() const {
2192   const char *fp = OptoReg::regname(OptoReg::c_frame_pointer);
2193   const TypeTuple *domain = C->tf()->domain();
2194   const int        argcnt = domain->cnt() - TypeFunc::Parms;
2195 
2196   // Incoming arguments in registers dump
2197   for( int k = 0; k < argcnt; k++ ) {
2198     OptoReg::Name parmreg = _matcher._parm_regs[k].first();
2199     if( OptoReg::is_reg(parmreg))  {
2200       const char *reg_name = OptoReg::regname(parmreg);
2201       tty->print("#r%3.3d %s", parmreg, reg_name);
2202       parmreg = _matcher._parm_regs[k].second();
2203       if( OptoReg::is_reg(parmreg))  {
2204         tty->print(":%s", OptoReg::regname(parmreg));
2205       }
2206       tty->print("   : parm %d: ", k);
2207       domain->field_at(k + TypeFunc::Parms)->dump();
2208       tty->cr();
2209     }
2210   }
2211 
2212   // Check for un-owned padding above incoming args
2213   OptoReg::Name reg = _matcher._new_SP;




2173   return buf+strlen(buf);
2174 }
2175 
2176 void PhaseChaitin::dump_for_spill_split_recycle() const {
2177   if( WizardMode && (PrintCompilation || PrintOpto) ) {
2178     // Display which live ranges need to be split and the allocator's state
2179     tty->print_cr("Graph-Coloring Iteration %d will split the following live ranges", _trip_cnt);
2180     for (uint bidx = 1; bidx < _lrg_map.max_lrg_id(); bidx++) {
2181       if( lrgs(bidx).alive() && lrgs(bidx).reg() >= LRG::SPILL_REG ) {
2182         tty->print("L%d: ", bidx);
2183         lrgs(bidx).dump();
2184       }
2185     }
2186     tty->cr();
2187     dump();
2188   }
2189 }
2190 
2191 void PhaseChaitin::dump_frame() const {
2192   const char *fp = OptoReg::regname(OptoReg::c_frame_pointer);
2193   const TypeTuple *domain = C->tf()->domain_cc();
2194   const int        argcnt = domain->cnt() - TypeFunc::Parms;
2195 
2196   // Incoming arguments in registers dump
2197   for( int k = 0; k < argcnt; k++ ) {
2198     OptoReg::Name parmreg = _matcher._parm_regs[k].first();
2199     if( OptoReg::is_reg(parmreg))  {
2200       const char *reg_name = OptoReg::regname(parmreg);
2201       tty->print("#r%3.3d %s", parmreg, reg_name);
2202       parmreg = _matcher._parm_regs[k].second();
2203       if( OptoReg::is_reg(parmreg))  {
2204         tty->print(":%s", OptoReg::regname(parmreg));
2205       }
2206       tty->print("   : parm %d: ", k);
2207       domain->field_at(k + TypeFunc::Parms)->dump();
2208       tty->cr();
2209     }
2210   }
2211 
2212   // Check for un-owned padding above incoming args
2213   OptoReg::Name reg = _matcher._new_SP;


< prev index next >