Browse Prior Art Database

Compiler performance evaluation using CPU emulator Disclosure Number: IPCOM000186260D
Original Publication Date: 2009-Aug-14
Included in the Prior Art Database: 2009-Aug-14
Document File: 3 page(s) / 60K

Publishing Venue



A method to efficiently use a cycle-accurate CPU hardware emulator for compiler performance evaluation and optimization, using a minimalistic run-time environment and a special link step to transform a test application into a full-system machine image that runs with low overhead under the emulator.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 3

Compiler performance evaluation using CPU emulator

Disclosed is a method to use a cycle-accurate CPU hardware emulator for compiler performance evaluation.

Good performance of compiler-generated code is essential to fully exploit the capability of computer hardware. Performance evaluation methods are a critical tool used to enable building compilers that fulfill this requirement.

A typical method to evaluate the performance of a compiler is to run a set of test applications on an operating system running on real hardware, and measure the run time (and in some cases other parameters provided by the hardware). However, it

would be preferable to allow creating a compiler for new processor even before first

actual hardware is available, so that a fully optimizing compiler is ready at the time the hardware is released. This usually requires the use of CPU hardware emulators during the performance evaluation phase.

To be useful for compiler development, the evaluation method needs to yield reliable results that precisely model the behavior of the hardware. Also, CPU hardware emulators with this property ("cycle-accurate emulators") often provide more in-depth insight into the reasons for certain observed performance behaviors by exposing internal processor micro-architecture details. However, such emulators tend to be very slow compared to real hardware,

which may make it infeasible to use

them to emulate a full operating system required for traditional performance evaluation.

The disclosed method describes a new way to use cycle-accurate CPU hardware emulators for compiler performance evaluation, by using a special link procedure to prepare test applications to run within a minimalistic run-time environment instead of a full operating system on the emulator. The run-time environment provides the operating system services required by the test application, but has vastly reduced overhead compared to an actual operating system. This makes it possible to run test applications in a reasonable time even on a hardware emulator running at a rate of 100s of cycles per second.

This run-time environment consists of:

* Start-up code initializing the processor hardware
* Kernel handling minimal POSIX subset system calls
* C run-time library using those kernel services
* Console support for application debug messages
* Su...