< prev index next >

src/hotspot/share/opto/output.cpp

Print this page




1687 {
1688   // Create a MachNopNode
1689   _nop = new MachNopNode();
1690 
1691   // Now that the nops are in the array, save the count
1692   // (but allow entries for the nops)
1693   _node_bundling_limit = compile.unique();
1694   uint node_max = _regalloc->node_regs_max_index();
1695 
1696   compile.set_node_bundling_limit(_node_bundling_limit);
1697 
1698   // This one is persistent within the Compile class
1699   _node_bundling_base = NEW_ARENA_ARRAY(compile.comp_arena(), Bundle, node_max);
1700 
1701   // Allocate space for fixed-size arrays
1702   _node_latency    = NEW_ARENA_ARRAY(arena, unsigned short, node_max);
1703   _uses            = NEW_ARENA_ARRAY(arena, short,          node_max);
1704   _current_latency = NEW_ARENA_ARRAY(arena, unsigned short, node_max);
1705 
1706   // Clear the arrays
1707   memset(_node_bundling_base, 0, node_max * sizeof(Bundle));


1708   memset(_node_latency,       0, node_max * sizeof(unsigned short));
1709   memset(_uses,               0, node_max * sizeof(short));
1710   memset(_current_latency,    0, node_max * sizeof(unsigned short));
1711 
1712   // Clear the bundling information
1713   memcpy(_bundle_use_elements, Pipeline_Use::elaborated_elements, sizeof(Pipeline_Use::elaborated_elements));
1714 
1715   // Get the last node
1716   Block* block = _cfg->get_block(_cfg->number_of_blocks() - 1);
1717 
1718   _next_node = block->get_node(block->number_of_nodes() - 1);
1719 }
1720 
1721 #ifndef PRODUCT
1722 // Scheduling destructor
1723 Scheduling::~Scheduling() {
1724   _total_branches             += _branches;
1725   _total_unconditional_delays += _unconditional_delays;
1726 }
1727 #endif




1687 {
1688   // Create a MachNopNode
1689   _nop = new MachNopNode();
1690 
1691   // Now that the nops are in the array, save the count
1692   // (but allow entries for the nops)
1693   _node_bundling_limit = compile.unique();
1694   uint node_max = _regalloc->node_regs_max_index();
1695 
1696   compile.set_node_bundling_limit(_node_bundling_limit);
1697 
1698   // This one is persistent within the Compile class
1699   _node_bundling_base = NEW_ARENA_ARRAY(compile.comp_arena(), Bundle, node_max);
1700 
1701   // Allocate space for fixed-size arrays
1702   _node_latency    = NEW_ARENA_ARRAY(arena, unsigned short, node_max);
1703   _uses            = NEW_ARENA_ARRAY(arena, short,          node_max);
1704   _current_latency = NEW_ARENA_ARRAY(arena, unsigned short, node_max);
1705 
1706   // Clear the arrays
1707   for (uint i = 0; i < node_max; i++) {
1708     ::new (&_node_bundling_base[i]) Bundle();
1709   }
1710   memset(_node_latency,       0, node_max * sizeof(unsigned short));
1711   memset(_uses,               0, node_max * sizeof(short));
1712   memset(_current_latency,    0, node_max * sizeof(unsigned short));
1713 
1714   // Clear the bundling information
1715   memcpy(_bundle_use_elements, Pipeline_Use::elaborated_elements, sizeof(Pipeline_Use::elaborated_elements));
1716 
1717   // Get the last node
1718   Block* block = _cfg->get_block(_cfg->number_of_blocks() - 1);
1719 
1720   _next_node = block->get_node(block->number_of_nodes() - 1);
1721 }
1722 
1723 #ifndef PRODUCT
1724 // Scheduling destructor
1725 Scheduling::~Scheduling() {
1726   _total_branches             += _branches;
1727   _total_unconditional_delays += _unconditional_delays;
1728 }
1729 #endif


< prev index next >