summaryrefslogtreecommitdiff
path: root/cachegrind
AgeCommit message (Collapse)AuthorFilesLines
2005-12-08Fix minor Cachegrind bug that was occasionally causing misattributions ofnjn1-3/+9
counts when a function name was used in more than one module. This showed up for "???" functions when profiling Valgrind itself. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5319 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-12-05Change hp2ps to output .ps files in the same dir that the .hp input filesnjn3-1/+9
are in. This fixes bug #117686. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5287 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-12-03Tidying up stuff re generating manpage from *.xml docsde1-25/+51
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5277 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-29Add directories missed in r5250 (ppc64 first checkin).sewardj1-0/+0
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5251 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-29Add framework for ppc64 support. Apologies in advance for thesewardj3-0/+75
inevitable breakage to other platforms. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5250 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-18Minor doc tweaks, mostly white spacede1-5/+3
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5201 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-17documentnjn1-1/+6
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5175 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-17Change the cannot-detect-cache-config message on PPC32 so we can filternjn2-2/+2
for it more precisely and thus tell if the auto-detection ever fails on x86/AMD64. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5173 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-17Filter out I-have-no-idea-what-your-caches-are message, so these testssewardj1-1/+2
don't fail on ppc32. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5159 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-15Complete documentation trawl for 3.1.0.sewardj1-10/+10
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5137 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-13Inline cachesim_*_doref(). This gains about 5--10% in speed.njn1-1/+4
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5117 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-12Remove commented-out x86/AMD64 stuff from PPC32 file.njn1-276/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5103 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-11Add -m32 for assembly code when possible.tom1-1/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5089 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-11Allow 32 bit x86 tests to run on amd64 machines.tom2-2/+12
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5087 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-10Cachegrind was aborting if it hit a client request. Now it doesn't.njn5-3/+19
This fixes #116057, I think. I added a regtest so it won't regress again. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5072 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-07Dual architecture support - this commit is a major rework of the buildtom1-10/+35
system that allows multiple copies of valgrind to be built so that we can build both x86 and amd64 versions of the tools on amd64 machines. The launcher is then modified to look at the program being run and decide which tool to use to run it. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5027 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-01Make ULong_width(0) return 1 instead of 1431655765. This stopssewardj1-0/+1
cachegrind segfaulting if it can't open its output file. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4973 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-23Don't assume the first statement is an IRMark, since it could insteadsewardj1-4/+10
be part of a self-check. Instead, copy verbatim any IR preamble preceding the first IMark. This stops cachegrind asserting on self-checking translations. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4967 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-20Oops, un-break cachegrind regtesting following r4951.sewardj1-2/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4953 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-19Clarify the P4 warning message a bit.sewardj1-2/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4951 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-19rm unused varsewardj1-4/+0
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4950 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-18Change the core-tool interface so that tools are fully aware of bothsewardj1-9/+17
the guest extents for the presented translation and also its original un-redirected guest address. These changes are needed in particular to make cachegrind's code cache management work properly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4943 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-16A small Cachegrind cleanup: previously it was copying some things (eg.njn1-138/+90
instr_size and instr_addr) into Ir events, then later copying those into instrInfo nodes. Now it just allocates the instrInfo nodes earlier and copies them in directly. This is a bit more concise and easier to understand. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4937 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-15Cachegrind cleanups:njn1-44/+43
- Remove some unnecessary assertions. - Add in some new ones. - Make things more concise and readable by factoring out things like "cgs->events[i+1]" into things like "ev2" in flushEvents(). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4936 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-15OSet-ified Cachegrind: njn1-261/+242
- The instrInfoTable was a VgHashTable, now it's an OSet. - The CC table was a custom 3-level hash table, now it's an OSet. This is easier to understand and there's no worrying about whether the hash array sizes are big enough. It also has the nice property that the results in the cachegrind.out.<pid> file are now sorted, so they're a bit easier to read. I did some testing and the performance difference appears to be negligible; CC table and InstrInfo table lookups and traversal aren't that critical. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4933 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-12Tiny comment/code layout tweaks; no functional change.njn1-9/+8
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4913 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-12Get rid of bbSeenBefore and associated logic: it appears to besewardj1-38/+27
irrelevant. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4912 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-12rm trigram stuff.sewardj1-36/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4904 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-12Redo the way cachegrind generates instrumentation code, so that it cansewardj1-316/+601
deal with any IR that happens to show up. This makes it work on ppc32 and should fix occasionally-reported bugs on x86/amd64 where it bombs due to having to deal with multiple date references in a single instruction. The new scheme is based around the idea of a queue of memory events which are outstanding, in the sense that no IR has yet been generated to do the relevant helper calls. The presence of the queue -- currently 16 entries deep -- gives cachegrind more scope for combining multiple memory references into a single helper function call. As a result it runs 3%-5% faster than the previous version, on x86. This commit also changes the type of the tool interface function 'tool_discard_basic_block_info' and clarifies its meaning. See comments in include/pub_tool_tooliface.h. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4903 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-10Convert some native types to our types.njn2-17/+17
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4899 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-10Update cache simulator for 64 bit addresses. This probably won't havenjn1-7/+7
caused many inaccuracies so far because it only matters if addresses above the 4GB line are used. Thanks to Josef W for the patch. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4898 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-09-27This commit merges in changes from branches/ASPACEM (specifically,sewardj3-18/+29
changes from r4341 through r4787 inclusive). That branch is now dead. Please do not commit anything else to it. For the most part the merge was not troublesome. The main areas of uncertainty are: - build system: I had to import by hand Makefile.core-AM_CPPFLAGS.am and include it in a couple of places. Building etc seems to still work, but I haven't tried building the documentation. - syscall wrappers: Following analysis by Greg & Nick, a whole lot of stuff was moved from -generic to -linux after the branch was created. I think that is satisfactorily glued back together now. - Regtests: although this appears to work, no .out files appear, which is strange, and makes it hard to diagnose regtest failures. In particular memcheck/tests/x86/scalar.stderr.exp remains in a conflicted state. - amd64 is broken (slightly), and ppc32 will be unbuildable. I'll attend to the former shortly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4789 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-09-25actually, they're unsignednjn1-2/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4766 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-09-25Print longs as longs.njn1-2/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4765 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-09-13Don't print the client's argv[i] if it's null, and related changes.njn1-4/+4
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4629 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-08-16Fixes for #110657, based on Jakub Jelinek's patch:njn2-5/+4
- filter out L3 warning messages so they don't break Cachegrind's regtests - handle lack of mq support gracefully in mq.c git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4429 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-08-12Cachegrind should not assert when it encounters a client request.njn1-6/+8
BACKPORT TO 3_0_X git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4391 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-08-11Get rid of some stupidity: njn1-8/+5
- Added some useful hash table functions (vanilla lookup() and remove()). [Actually, I accidentally added them with my previous commit] Replaced various simple uses of VG_(HT_get_node) with these new functions. - Passing record_freemismatch_error() the MAC_Chunk of the freed heap block. So now we don't need to call describe_addr() to re-find that block, which means that we can remove the MAC_Chunk from the malloc_list earlier, rather than having to do a lookup and then later remove it with the stupid removal handle returned by VG_(HT_get_node)(). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4379 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-08-04Replace out-of-date email address.njn2-2/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4322 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-08-02Fixed a bug in Cachegrind: it was adding instrumentation afternjn1-27/+79
conditional jumps, so if those jumps were taken, the instrumentation wasn't executed. This was causing the I-cache access counts to be underestimated. This commit puts the instrumentation before the jumps, except for the odd case of REP instructions, giving the same behaviour as 2.4.0. Based on a patch from Josef Weidendorfer. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4309 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-27Ignore prefetch information when decoding Intel cache details. Patchtom1-0/+4
from Josef Weidendorfer <Josef.Weidendorfer@gmx.de>. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4286 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-25fix breakage/wibblesnjn1-1/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4261 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-23A commit which is almost all trivial change.sewardj1-3/+6
- m_main: if --log-file-qualifier applies, do not add ".pid" at the end of the name - Fix the logic which detected whether the just-devised name already existed. This was broken (by me) because it could not distinguish the reasons for failing to open the logfile. Doing this required changing the return type of VG_(open) from Int to SysRes (to make failure reasons visible) and that's the cause of most of the changes. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4228 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-20Add a CPUID case, thanks to Josef W.njn2-0/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4210 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-08Don't bomb cachegrind at startup.sewardj1-17/+15
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4131 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-03Remove dead function.njn1-10/+0
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4101 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-03Changed m_hashtable.c to allow the size of the hash table to be specifiednjn1-3/+3
when it is created. Fortunately this didn't affect code outside this module except for the calls to VG_(HT_construct)(). As a result, we save some memory because not all tables have to be as big as the ones needed for malloc/free tracking. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4100 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-02Removed the remnants of the attempt at an ARM port, because it hadnjn2-48/+0
bit-rotted badly and was clogging up the code. I put the useful remnants in docs/porting-to-ARM in case anyone ever wants to try porting to ARM again. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4092 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-02Don't need a foo_SOURCES line if the program has only a single source filenjn1-2/+0
named foo.c. Now again using the right flags for building fpu_lazy_eflags.c, too. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4086 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-02Fixed 'make dist'. In particular, all the arch/platform-specific filesnjn1-1/+4
get included in the distro now, not just the ones for the arch/platform that the distro tarball is built on. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4085 a5019735-40e9-0310-863c-91ae7b9d1cf9