| ============================================================================= |
| Valgrind Roadmap |
| ============================================================================= |
| |
| This file serves as a rough roadmap for Valgrind development. It shows a |
| minimal set of features we hope to implement for each version. It's in |
| reverse chronological order. |
| |
| ----------------------------------------------------------------------------- |
| 3.3.0 |
| ----------------------------------------------------------------------------- |
| Scheduled for mid-to-late 2007? |
| |
| * Add ppc{32,64}/AIX5 support [Done by Julian] |
| |
| * Add some more experimental tools? |
| |
| * Rework Massif [Done by Nick] |
| |
| * Rework Helgrind [Done by Julian] |
| |
| * Add experimental tools (Omega + DRD) [Julian] |
| |
| ----------------------------------------------------------------------------- |
| 3.2.4 |
| ----------------------------------------------------------------------------- |
| Scheduled for mid-2007? |
| |
| ----------------------------------------------------------------------------- |
| 3.2.3 |
| ----------------------------------------------------------------------------- |
| [Was released on Jan 29, 2007] |
| |
| ----------------------------------------------------------------------------- |
| 3.2.2 |
| ----------------------------------------------------------------------------- |
| [Was released on Jan 22, 2007] |
| |
| ----------------------------------------------------------------------------- |
| 3.2.1 |
| ----------------------------------------------------------------------------- |
| Scheduled for Dec 06? |
| [Was released on 16 Sep, 2006] |
| |
| ----------------------------------------------------------------------------- |
| 3.2.0 |
| ----------------------------------------------------------------------------- |
| Scheduled for end-Mar 06 (3.1.0 + 4 months) ? |
| [Was released on Sep 16, 2006] |
| |
| In order of increasing speculativeness |
| -------------------------------------- |
| |
| * Add ppc64-linux support. [Done by Julian] |
| |
| * Fold in the V bit compression stuff if it works well (early signs |
| are promising) and get rid of Addrcheck. |
| [Done by Nick. Average speedup of 1.20x, shadow memory size reduction of |
| 4.2x.] |
| |
| * Get function wrapping working again. [Done by Julian] |
| Reinstate basic thread checks. |
| Reinstate Helgrind. |
| |
| * Performance tuning: |
| - faster register allocation in vex |
| - improve stack-update pass [Done by Nick] |
| - assess effect of branch misprediction in dispatchers |
| |
| * Try to accelerate development for Darwin ? |
| |
| Smaller things |
| -------------- |
| * Consider using the following defaults: |
| --leak-check=yes |
| --num-callers=20 |
| |
| * Expose some of m_redir's functionality to tools so that Memcheck |
| can replace strlen/strcmp on PPC32 (remove the 3.1.0 hack for this |
| which checked in m_redir.c if the current tool was Memcheck). |
| [Won't bother. The fix is worse than the problem it's trying to solve; |
| the issue is that the replacement functions are in m_trampoline.S and must |
| be between VG_(trampoline_stuff_start) and VG_(trampoline_stuff_end) for |
| arcane reasons and moving them into a tool-visible place is a pain.] |
| |
| ----------------------------------------------------------------------------- |
| 3.1.1 |
| ----------------------------------------------------------------------------- |
| Tentatively end-Dec 05 (3.1.0 + 1 month): fix any critical bugs in |
| 3.1.0. |
| [Was released on Mar 16, 2006] |
| |
| ----------------------------------------------------------------------------- |
| 3.1.0 |
| ----------------------------------------------------------------------------- |
| Scheduled for around November 2005. (Released 27 Nov 05). |
| |
| Definite |
| -------- |
| * Get 32-bit and 64-bit programs working smoothly on AMD64 (Tom?). Several |
| levels of smoothness here, we should aim for at least level 3. |
| |
| 1. Be able to build a 32-bit valgrind on a 64-bit machine, so you can |
| build and install both, and manually choose between bin/valgrind and |
| bin64/valgrind. |
| 2. Build both automatically when installing. |
| 3. Choose the appropriate executable automatically at startup just from |
| "valgrind". |
| 4. With --trace-children=yes, allow 32-bit programs to exec 64-bit |
| programs and vice versa, and invoke the appropriate Valgrind |
| automatically. |
| [All four levels done by Tom] |
| |
| * Get PPC32 working usably with Memcheck (Julian). Has already improved a |
| lot since. Get Cachegrind working with it (Nick). |
| [Both done by Julian] |
| |
| * Rewrite address space manager; statically link the core with |
| each tool; remove all glibc dependencies (Julian). |
| [Done by Julian] |
| |
| * What about --time-stamp=yes? |
| [Fixed by Julian to give relative time since startup] |
| |
| * Make it work with GCC 2.95 (bug #111781) -- don't put declarations after |
| statements in blocks. Do it after merging ASPACEM with the trunk. |
| -Wdeclaration-after-statement is the GCC warning that detects this, but |
| it is only present in GCC after 3.4.0 (ie. not in 3.0.X--3.3.X)... |
| [Done by Tom and others] |
| |
| * We need to reintroduce some kind of core/tool interface versioning, |
| so that if external tools link with libcoregrind.a incompatibilities |
| are detected. |
| |
| Maybe |
| ----- |
| * Get pthread modelling and Helgrind working again. Requires function |
| wrapping (Nick). |
| [Won't happen for 3.1.0. Function wrapping is difficult.] |
| |
| * Reinstate Addrcheck and/or implement V-bit compression in Memcheck (?). |
| [Won't happen for 3.1.0.] |
| |
| * Allow suppressions by filename + line number? (Joseph Link's patch) |
| |