mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-04 02:18:37 +00:00
144 lines
5.2 KiB
Plaintext
144 lines
5.2 KiB
Plaintext
=============================================================================
|
|
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]
|
|
|
|
* 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)
|
|
|