Internships/ProjectIdeas/TCGCodeQuality

From QEMU
Revision as of 16:45, 15 January 2019 by Ajb (talk | contribs) (Created page with "=== Measure Tiny Code Generation Quality === '''Summary:''' Improve the diagnostics tools to asses code quality Improving the code generation of the TCG backend is a hard...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Measure Tiny Code Generation Quality

Summary: Improve the diagnostics tools to asses code quality

Improving the code generation of the TCG backend is a hard task that involves reading through large amounts of text looking for anomalies in the generated code. It would be nice to have tools to more readily extract and parse code generation information. This would include:

* which are hot blocks (frequently run, hence more important performance wise)
* how many fills/spills in a block (where register contents are moved due to register pressure)
* number of host instructions for each guest instruction (JIT profiling has a basic version of this)
* elide or beautify common blocks like softmmu access macros (which are always the same)
* support interactive exploration of translation state (system emulation)

Links:
* Documentation/TCG

Details:
* Skill level: intermediate or advanced, understanding of code generation (compilers/JITs)
* Language: C, Assembly (x86 or preferred host)
* Mentor: alex.bennee@linaro.org / stsquad on IRC
* Suggested by: Alex Bennée