Methods and apparatus for allocating and using stack space are disclosed. According to one aspect of the present invention, a computer-implemented method for allocating stack space in an object-based system includes obtaining source code that is suitable for compilation and includes a definition associated with a variable. During register allocation, stack slots and machine registers are treated substantially similarly. This includes the steps of building an interference graph, copy coalescing, attempting to color the interference graph, and determining if the attempt to color the interference graph is successful. If the coloring attempt is not successful, then in lieu of normal spill code being inserted, register-to-register copies, e.g., "reg-reg" copies, are inserted in the source code. The "reg-reg" copies include copies associated with both stack slots and machine registers.

De methodes en de apparaten om stapelruimte toe te wijzen en te gebruiken worden onthuld. Volgens één aspect van de onderhavige uitvinding, omvat een computer-uitgevoerde methode om stapelruimte in een op voorwerp-gebaseerd systeem toe te wijzen het verkrijgen van broncode die geschikt voor compilatie is en een definitie verbonden aan een variabele omvat. Tijdens registertoewijzing, worden de stapelgroeven en de machineregisters wezenlijk zo ook behandeld. Dit omvat de stappen van de bouw van een interferentiegrafiek, exemplaar dat, de interferentiegrafiek probeert te kleuren, bepaalt samenvoegt zich en als de poging om de interferentiegrafiek te kleuren succesvol is. Als de kleuringspoging niet succesvol is, dan in plaats van normale morserijcode die, register-aan-register exemplaren wordt opgenomen, b.v., "Reg.-Reg." exemplaren, wordt opgenomen in de broncode. "Reg.-Reg." exemplaren omvat exemplaren verbonden aan zowel stapelgroeven als machineregisters.

 
Web www.patentalert.com

< (none)

< Customized web browsing and marketing software with local events statistics database

> Encryption processor with shared memory interconnect

> (none)

~ 00041