A front-end compiler generates unique instructions for virtual method calls in intermediate representation code that may be passed to a back-end compiler. A back-end compiler in accordance with the preferred embodiments receives the intermediate representation code, and processes the unique instructions to generate therefrom equivalent code with explicit method calls, where possible. The machine code from the back-end compiler is then executed using sample inputs to generate profile data. The profile data and intermediate representation code are fed into the back-end compiler, which then generates code that may devirtualize virtual method calls according to the profile data by providing one or more explicit method calls for target methods that have an execution frequency (as indicated by the profile data) that exceeds a predetermined threshold.

Un recopilador anticipado genera las instrucciones únicas para las llamadas virtuales del método en el código intermedio de la representación que se puede pasar a un recopilador back-end. Un recopilador back-end de acuerdo con las encarnaciones preferidas recibe el código intermedio de la representación, y procesa las instrucciones únicas de generar código therefrom equivalente con llamadas explícitas del método, en lo posible. El código automático del recopilador back-end entonces se ejecuta usando entradas de la muestra para generar datos del perfil. Los datos del perfil y el código intermedio de la representación se alimentan en el recopilador back-end, que entonces genera el código que puede devirtualize llamadas virtuales del método según los datos del perfil proporcionando unas o más llamadas explícitas del método para los métodos de la blanco que tienen una frecuencia de la ejecución (según lo indicado por los datos del perfil) que excede un umbral predeterminado.

 
Web www.patentalert.com

< (none)

< Single ballast for powering at least one high intensity discharge lamp

> Object recognition with occurrence histograms

> (none)

~ 00063