A method and several variants are provided for analyzing and transforming a computer program such that instructions may be reordered even across instructions that may throw an exception, while strictly preserving the precise exception semantics of the original program. The method uses program analysis to identify the subset of program state that needs to be preserved if an exception is thrown. Furthermore, the method performs a program transformation that allows dependence constraints among potentially excepting instructions to be completely ignored while applying program optimizations. This transformation does not require any special hardware support, and requires a compensation code to be executed only if an exception is thrown, i.e., no additional instructions need to be executed if an exception is not thrown. Variants of the method show how one or several of the features of the method may be performed.

Een methode en verscheidene varianten worden verstrekt voor het analyseren van en het omzetten van een computerprogramma dusdanig dat de instructies zelfs over instructies kunnen worden weer in orde gebracht die een uitzondering kunnen werpen, terwijl strikt het bewaren van de nauwkeurige uitzonderingssemantiek van het oorspronkelijke programma. De methode gebruikt programmaanalyse om de ondergroep van programma te identificeren verklaart die moet worden bewaard als een uitzondering wordt geworpen. Voorts voert de methode een programmatransformatie uit die potentieel afhankelijkheidsbeperkingen onder maar instructies om volledig toelaat worden genegeerd terwijl het toepassen van programmaoptimalisering. Deze transformatie vereist geen speciale hardwaresteun, en vereist dat een compensatiecode wordt uitgevoerd slechts als een uitzondering, d.w.z., geen extra instructies moet wordt geworpen worden uitgevoerd als een uitzondering niet wordt geworpen. De varianten van de methode tonen hoe één of verscheidene van de eigenschappen van de methode kan worden uitgevoerd.

 
Web www.patentalert.com

< Methods and apparatus for optimizing programs in the presence of exceptions

< Methods and apparatus for optimizing programs in the presence of exceptions

> Dynamic code motion optimization and path tracing

> Mechanism for dynamic selection of an object's method

~ 00052