Apparatus and methods are provided for improving devirtualization of method
calls. The apparatus and methods reduce the amount of processing time used
in performing lookups of methods by limiting such lookups to calls of
methods that have been either overridden or overloaded. If a method has
not been overridden or overloaded, a branch to the compiled method code is
directly taken. If a method has been overridden or overloaded, a lookup
routine is executed for looking-up the appropriate method to be invoked on
the passed object. The identification of whether to use a lookup routine
may be performed in many different ways including providing an extra field
in a method block of the method, inserting code into a prolog of the
method, and the like.
Los aparatos y los métodos se proporcionan para mejorar el devirtualization de las llamadas del método. Los aparatos y los métodos reducen la cantidad de tiempo de transformación usada en la ejecución de operaciones de búsqueda de métodos limitando tales operaciones de búsqueda a las llamadas de los métodos se han eliminado o se han sobrecargado que. Si un método no se ha eliminado ni se ha sobrecargado, un rama al código compilado del método se toma directamente. Si se ha eliminado o se ha sobrecargado un método, una rutina de las operaciones de búsqueda se ejecuta para mirar -para arriba el método apropiado que se invocará en el objeto pasado. La identificación del si utilizar una rutina de las operaciones de búsqueda se puede realizar en muchas diversas maneras incluyendo el abastecimiento de un campo adicional en un bloque del método del método, insertando código en un prólogo del método, y los similares.