d4dc5fc0e4091cead54ebbcdfddc60e0f3ff8081 |
|
01-May-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This patch adds a function that allows to directly properly size an xarray when the size is known in advance. 3 places identified where this function can be used trivially. The result is a reduction of 'realloc' operations in core arena, and a small reduction in ttaux arena (it is the nr of operations that decreases, the memory usage itself stays the same (ignoring some 'rounding' effects). E.g. for perf/bigcode 0, we change from core 1085742/ 216745904 totalloc-blocks/bytes, 1085733 searches ttaux 5348/ 6732560 totalloc-blocks/bytes, 5326 searches to core 712666/ 190998592 totalloc-blocks/bytes, 712657 searches ttaux 5319/ 6731808 totalloc-blocks/bytes, 5296 searches For bz2, we switch from core 50285/ 32383664 totalloc-blocks/bytes, 50256 searches ttaux 670/ 245160 totalloc-blocks/bytes, 669 searches to core 32564/ 29971984 totalloc-blocks/bytes, 32535 searches ttaux 605/ 243280 totalloc-blocks/bytes, 604 searches Performance wise, on amd64, this improves memcheck performance on perf tests by 0.0, 0.1 or 0.2 seconds depending on the test. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15173 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
aa29de28d79933eaa0a9c16ced4c52c6c1d54738 |
|
01-Apr-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix infinite loop in sector recycling introduced by r15054 (a regression test that will exercise sector recycling will follow) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15058 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
d28615ccace5f9c79fca7713c73c19e0767f8f47 |
|
31-Mar-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Further reduction of the size of the sector TTE tables For default memcheck configuration, 32 bits) this patch decreases by 13.6 MB ie. from 89945856 to 76317696. Note that the type EClassNo is introduced only for readibility purpose (and avoid some cast). That does not change the size of the TTEntry. The TTEntry size is reduced by using unions and/or Bool on 1 bit. No performance impact detected (outer callgrind/inner memcheck bz2 on x86 shows a small improvement). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15054 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
24f33d792e877ceedd68d6f74f40bba34fd72ce5 |
|
26-Mar-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Improve --stats=yes: * give the avg nr of IPs per execontext * use the newly introduced %f in m_transtab.c ratio and in the avg nr of execontext per list git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15041 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
900c5357f377ae0cf0dba255e660b1c2df5d93bc |
|
24-Mar-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
* Add in helgrind stats the nr of live/exit/joined/exit and joined threads * avoid division by 0 in m_transtab.c stats before anything was done git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15037 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
523b5b8ca67d2063afd02342d0138b0dc0ed6706 |
|
23-Mar-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This patch further reduces the memory used by TT/TC (by about 15Mb on 32 bits memcheck default nr of sectors). Memory is reduced by using UShort typedef-s for Sector no and TTE no. Note that for TTE no, we had a mixture of UShort, UInt and Int used depending on the place (a TTE no was in any case constrained to be an UShort). The bss memory/startup space is also reduced by allocating the htt on demand (like tt and tc), using mmap the first time a sector is initialised. Changes: * pub_core_transtab.h : * 2 typedef to identify a sector and a tt entry (these 2 types are UShort) * add 2 #define 'invalid values' for these types * change the interface to use these types rather than UInt * m_transtab.c * use wherever relevant these 2 new types rather than UInt or UShort * replace the use of -1 by INV_SNO or INV_TTE * remove now useless typecast from Int/UInt to UShort for tte * schedule.c: use the new types git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15036 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
bece82eba7ba26398a673def2fa326341c4f8ef7 |
|
19-Mar-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Change TT/TC hashing data structure (decreases memory by 50MB for memcheck 32bits) This patch changes the way the transtab entries hash table is done. Currently, the hash table is an open hash table considered full at 65%. This means that in average, 1 entry on 3 is unused. (all the hash table memory will be 'active' for big applications, as the active entries are normally reasonably distributed over the hash table). The size of a transtab entry is significant (about 150 Bytes). To avoid having 35% of the entries unused, the translation table is split in 2: An hash table, that will contain an index pointing at the transtab entries. With this technique, we are adding a small hash table, but we spare 35% of the translation table. Performance measurements have shown no degradation, and some platforms have better performance. Not too clear why, probably this helps platforms with small caches ?). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15023 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
924c852b5883a7b42298dc8c7542116bd9a8a485 |
|
15-Mar-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
New Option --avg-transtab-entry-size=<number> can be used to tune the size of the translation table sectors, either to gain memory or to avoid too many retranslations. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15016 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
87d15de937a7fda829d1916bda59b9bcf62a2fd3 |
|
13-Mar-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix a warnings introduced by rev 15005 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15008 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
5e47e3fae6c8bd8e3b669801a1edbc30ec10499c |
|
12-Mar-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
m_transtab.c statistic/tracing * common up the identical debug and clo_stat traces * add in the stats the nr of sectors recycled * add the avg translation size in each sector recycled and in the final statistics (no functional change) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15005 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
1bb648db3172e70b73a8ca3a3f3c12ffc1dcd263 |
|
05-Mar-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make printing of transtab: debug-log messages slightly prettier. No functional change. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14981 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
5f1aeb620eb5a3aab662f8b949b031a77a0d14fe |
|
13-Jan-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Export VG_(discard_tranalsations_safely) to the tools. It is only allowed to be called in certain contexts which is enforced at runtime. Change callgrind accordingly. New header file pub_tool_transtab.h added. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14867 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
5f8ced84fdd6ebd260cece49b51477c68437e8ca |
|
10-Jan-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track VEX r3063 (function prototype change). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14863 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
ddd61ff058f02059064e083a8accaefed23d5548 |
|
04-Jan-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Change most remaining use of Addr64 in coregrind and the tools to Addr. Tracking VEX r3056. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14846 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
44bd4465581ff28cef83bb39e684a489297d7b71 |
|
29-Dec-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove the type AddrH. The code assumes in many places that the host and guest architecture are the same. So the type is really pointless nowadays. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14834 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
518850bf0da07ed3e2244e307268ae0fd80e93a8 |
|
23-Oct-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Constify coregrind. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14656 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
597314210494248b4fbefd45525a748439629218 |
|
24-Jul-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r2910 (infrastructural improvements in representation of endianness in VEX). In short: in m_machine.c, VG_(machine_get_hwcaps), get the endianness of the host, and pass it through to all places (in VEX) where it is required. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14184 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
0f157ddb404bcde7815a1c5bf2d7e41c114f3d73 |
|
18-Oct-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates (20XY-2012 ==> 20XY-2013) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13658 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
a11ec17946cdbafb336e9121b64961c0633af2e7 |
|
18-Oct-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Followup to r13652 (make the translation cache size be command-line controllable): reduce MAX_N_SECTORS to 24, speed up Sector initialisation, wording tweaks. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13655 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
8e1bee406c191820bc3b22bf55cfa69ef5fdcd8b |
|
18-Oct-2013 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Allow the user to dimension the translation cache A previous commit had decreased to 6 (on android) and increased to 16 (other platforms) the nr of sectors in the translation cache. This patch adds a command line option to let the user specify the nr of sectors as e.g. 16 sectors might be a lot and cause an out of memory for some workloads or might be too small for huge executable or executables using a lot of shared libs. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13652 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
2604386ed31a618ee5f2c8d937ada2ef9efc0a55 |
|
19-Sep-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Double the size of the (already huge) translation cache on all non-phone/tablet targets. The previous apparently-huge sizing is evidently not huge enough for recent apps, eg, recent Firefox requires circa 350k translations to get started and almost fills an 8-sector cache merely starting up and then idling. On Android targets, fall back to 6 sectors; space is critical. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13568 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
3a5322057616d0da214b9e0f897866e203c03e40 |
|
25-Feb-2013 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
fix 315545 (find_TTEntry_from_hcode): Assertion '(UChar*)sec->tt[tteNo].tcptr <= (UChar*)hcode' failed Assertion valgrind: m_transtab.c:674 (find_TTEntry_from_hcode): Assertion '(UChar*)sec->tt[tteNo].tcptr <= (UChar*)hcode' failed. failure (encountered on some platforms while running gdbsrv tests). The problem is related to invalidated entries and the host_extents mapping between hostcode and the translation table entry. The problem: when an entry is invalidated, the translation table entry is changed to status Deleted. However, the host extent array element is not cleaned up. If a search for a host code address (find_TTEntry_from_hcode) finds this entry, the translation table entry in Deleted status is considered as a 'not found', which ensures that the invalidated entry is not used (e.g. for chaining). This is all ok. However, it might be that this Deleted entry is re-used (see function VG_(add_to_transtab), searching for a Empty or Deleted entry. If the Deleted entry is re-used, then a search for the dead host code can give a result pointing to the re-used entry. That is clearly wrong. Note that it is unclear if this bug can only be triggered while using gdbsrv or if this bug can be triggered with just the "normal" invalidation logic of translation. gdbsrv being a heavy "user" of invalidation, it might be it helps to trigger the code. Alternatively, as gdbsrv invalidation is special (e.g. invalidation of some entries is done during translation of other entries), it might be the bug is specific to gdbsrv. In any case, to avoid the bug: searching for an host code address must not only ignore Deleted entries, but must also ignore an entry found via a host_extent element which is for a Deleted entry that was re-used afterwards (pointed to by a newer host_extent element). Multiple solutions are possible for fixing the bug: Sol1: cleanup the host_extents array when an entry is deleted. The cleanup is however deemed costly: Each invalidate operation must do a search in the host_extents. The host_extents array must then be "compacted" to remove the "dead" host extent element from the array. The compact operation can be avoided if instead of removing the element, one marks instead the element as "dead" e.g. by using one bit of UInt len for that: UInt len : 31; Bool dead : 1; This avoids the compact, but still incurrs the cost of search and modify the host_extent for each entry invalidated. Invalidating entries seems to be a critical operation (e.g. specific ECLASS related data structures have been done to allow fast deletion). => it is deemed that a solution not incurring cost during invaliation is preferrable. * Sol 2: detect in find_TTEntry_from_hcode that the host_extent element is re-used, and handle it similarly to an host_extents which points at a Deleted entry. This detection is possible as if an entry is re-used after having been deleted, this implies that its host code will be after the end of the host code of the deleted entry (as host code of a sector is not re-used). The attached patch implements this solution. * Sol 3: avoid re-using an entry : the entry would then stay in Deleted state. This is deemed not ok as it would imply that invalidation of entries will cause a sector to become full faster. The patch: * adds a new function Bool HostExtent__is_dead (const HostExtent* hx, const Sector* sec) telling if the host extent hx from sector sec is a dead entry. * this function is used in find_TTEntry_from_hcode so that dead host extents are not resulting in host code to be found. * adds a regression test which caused the assert failure before (bug was found/reported/isolated in a small test case by Dejan Jevtic). * To check the logic of HostExtent__is_dead, m_transtab.c sanity check is completed to verify that the nr of entries in use in a sector is equal to the nr of non dead entries in the host extent array. * adds/improves traces in m_transtab.c (enabled at compile time using #define DEBUG_TRANSTAB). Some already existing 'if (0)' conditions are replaced by if (DEBUG_TRANSTAB) Regression tested on f12/x86 debian6/amd64 (also with export EXTRA_REGTEST_OPTS=--sanity-level=4) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13290 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
17c5e2e3a2f48970063ea43a9abee3e11c72cb04 |
|
28-Dec-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Improvements to the built-in profiling infrastructure: --profile-flags=00000000 now prints summary statistics, one line per profiled block, but with no translation details. Previously it had no effect. --profile-interval=<number> is a new flag that causes the profile data to be dumped and zeroed every <number> event checks. This makes it possible to get profile data without waiting for runs to end, and to get profile data which depends on the current workload etc. If --profile-interval=0 or is unset, the profile is printed only once, at the end of the run, as before. --profile-flags=XXXXXXXX (for at least one nonzero X) prints the summary lines both at the start and end of the profile, so you don't have to scroll back up to the top to see the summary. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13213 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
059838bd94f9d06cd31648dc9bbf7da71c3db957 |
|
17-Dec-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
With --stats=yes, also print TT/TC stats. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13185 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
6bd9dc18c043927c1196caba20a327238a179c42 |
|
23-Nov-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Changes to allow compilation with -Wwrite-strings. That compiler option is not used for testcases, just for valgrind proper. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13137 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
1636d33c13958b9c0e7d3059cdd5005746418eb2 |
|
15-Nov-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Char/HChar fixups for m_debuginfo and m_gdbserver. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13122 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
19f91bbaedb4caef8a60ce94b0f507193cc0bc10 |
|
10-Nov-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix more Char/HChar mixups. Closing in... git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13119 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
54fe2021b87b9e5edb8ec8070f47b86d5cafb8aa |
|
28-Oct-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Char/HChar and constness fixes. Mostly cost center on allocators which is always a const HChar * git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13089 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
03f8d3fc25f5a45c5826259d1b33b7f310117279 |
|
05-Aug-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates to include 2012. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12843 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
b7301c690606964dd1ece81ce2fd2b6fd90ab012 |
|
24-Apr-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
For --profile-flags=, weight the counts by the number of guest insns in each IRSB, rather than considering each IRSB to have a weight of 1. This probably gives more representative profiles, especially post t-chain merge, which made inter-SB transitions more or less free compared to what they were before. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12542 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
e25053c5aaefc6a4039dcd557adf24d8bb23db69 |
|
23-Apr-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Disable debug printing w.r.t. sector unlinking. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12539 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
291849fb0285e0998b4c9e33eb153eb3373c4a88 |
|
21-Apr-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge branches/TCHAIN from r12476 (its creation point) into trunk. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12517 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
ec062e8d96a361af9905b5447027819dfbfee01a |
|
23-Oct-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update all copyright dates, from 20xy-2010 to 20xy-2011. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12206 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
b5b87408c0c99f9f6938d8cd921e2a5f420577c4 |
|
07-Mar-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind side components. (Florian Krohm <britzel@acm.org> and Christian Borntraeger <borntraeger@de.ibm.com>). Fixes #243404. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11604 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
1e0fff690e9c571275e8025eb2dcff7bf29b53af |
|
10-Jan-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Memcheck, None: update avg translation size to be more realistic. Massif: specify avg translation size at all, so as to avoid excessive retranslations caused by the fact that the default value is far below reality for Massif. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11494 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
9eecbbb9a9cbbd30b903c09a9e04d8efc20bda33 |
|
03-May-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates to 2010. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
5d0d1f3a78d6c5c765360982a08d87a068ce7f1c |
|
14-Mar-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Improve performance of the fallback path when a translation is not found in the fast-cache. * reduce max loading of the per-sector TT hash tables from 80% to 65%. This reduces the number of required probes by a factor of 3. * when searching for a translation, don't visit the sectors in a fixed order. Instead, use an MTF array in which the most popular sectors (in terms of most likely to hold the translation we're looking for) are visited first. This reduces the number of required probes by another factor of 2. These improvements have no effect on small programs, but improve scalability on big apps. For an application comprising 300k translations, runtime on Memcheck is reduced by 3% and on None by about 20%. The average number of probes per fast-cache miss is reduced from around 22 to less than 5. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11091 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
59570ffbe31930ab4d678754daaeec0715117a3d |
|
01-Jan-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge from branches/ARM, all parts of the ARM-Linux port except for the changes to do with reading and using ELF and DWARF3 info. This breaks all targets except amd64-linux and x86-linux. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10982 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
738856f99eea33d86ce91dcb1d6cd5b151e307ca |
|
15-Jul-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge coregrind/ changes from branches/MESSAGING_TIDYUP r10464. This commit tidies up and rationalises what could be called the "messaging" system -- that part of V to do with presenting output to the user. In particular it brings significant improvements to XML output. Changes are: * XML and normal text output now have separate file descriptors, which solves longstanding problems for XML consumers caused by the XML output getting polluted by unexpected non-XML output. * This also means that we no longer have to hardwire all manner of output settings (verbosity, etc) when XML is requested. * The XML output format has been revised, cleaned up, and made more suitable for use by error detecting tools in general (various Memcheck-specific features have been removed). XML output is enabled for Ptrcheck and Helgrind, and Memcheck is updated to the new format. * One side effect is that the behaviour of VG_(message) has been made to be consistent with printf: it no longer automatically adds a newline at the end of the output. This means multiple calls to it can be used to build up a single line message; or a single call can write a multi-line message. The ==pid== preamble is automatically inserted at each newline. * VG_(message)(Vg_UserMsg, ..args..) now has the abbreviated form VG_(UMSG)(..args..); ditto VG_(DMSG) for Vg_DebugMsg and VG_(EMSG) for Vg_DebugExtraMsg. A couple of other useful printf derivatives have been added to pub_tool_libcprint.h, most particularly VG_(vcbprintf). * There's a small change in the core-tool interface to do with error handling: VG_(needs_tool_errors) has a new method void (*before_pp_Error)(Error* err) which, if non-NULL, is called just before void (*pp_Error)(Error* err). This is to give tools the chance to look at errors before any part of them is printed, so they can print any XML preamble they like. * coregrind/m_errormgr.c has been overhauled and cleaned up, and is a bit simpler and more commented. In particular pp_Error and VG_(maybe_record_error) are significantly changed. The diff is huge, but mostly very boring. Most of the changes are of the form - VG_(message)(Vg_UserMsg, "this is a message %d", n); + VG_(message)(Vg_UserMsg, "this is a message %d\n", n); Unfortunately as a result of this, it touches a large number of source files. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10465 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
cda2f0fbda4c4b2644babc830244be8aed95de1d |
|
18-May-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merged non-Darwin-specific parts of r9397,r9423,r9490, 9461, 9462 from the DARWIN branch. A big ugly DARWIN/trunk sync commit, mostly to do with changing the representation of SysRes and vki_sigset_t. Functionality of the trunk shouldn't be changed by it. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9876 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
9f207460d70d38c46c9e81996a3dcdf90961c6db |
|
10-Mar-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Updated copyright years. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
1dcee097db02f9ef3ba355162c4373d90d0e895c |
|
24-Feb-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove a number of unused parameters, found with -Wunused-parameter. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9248 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
9c606bd8634cd6b67bb41fa645b5c639668cfa2d |
|
18-Sep-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge all remaining changes from branches/PTRCHECK. These are some relatively minor extensions to m_debuginfo, a major overhaul of m_debuginfo/readdwarf3.c to get its space usage under control, and changes throughout the system to enable heap-use profiling. The majority of the merged changes were committed into branches/PTRCHECK as the following revs: 8591 8595 8598 8599 8601 and 8161. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8621 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
a0b6b2cf9abc7b0d87be1215a245eaccc0452af9 |
|
07-Jul-2008 |
bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merged FORMATCHECK branch (r8368) to trunk. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8369 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
89230cace4f5acad8037e4cb4b3e49e83d3a275b |
|
29-May-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Allow 64-byte line sizes (PA6T cpu). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8151 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
4d474d086188fd1f29fa97dbd84d8ea2e589a9b8 |
|
11-Feb-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates ("200X-2007" --> "200X-2008"). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
5f76de086a6d643db51e50a4e623df7dfc9b6161 |
|
11-Feb-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Redo the dispatcher's fast-cache mechanism (VG_(tt_fast) et al) to be more cache friendly. This changes the mechanism from being a table of pointers to (guest address, translated code pairs) to being a table of pairs (guest address, pointer to translated code). The effect ranges from zero up to about 20% performance improvement on memcheck, the biggest effects being seen for programs which jump around a large number of blocks of code and whose data set does not fit in L2. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6582 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
9ebd6e0c607fa30301b1325874eb8de871c21cc5 |
|
08-Jan-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
0b9d74abd0a663b530d290b2b788ddeda46e5400 |
|
24-Dec-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Non-functional commit: track IR renaming in vex r1689. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6416 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
d1c6fa2e77dcffc271175822c9c547bd64febca9 |
|
17-Oct-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Ensure VG_(tt_fastN) always stays as an array of NULLs if BB profiling isn't in effect. This should cause the dispatcher to segfault if it should ever inadvertantly end up running the profiled dispatch loop when it shouldn't. [The alternative is to run slowly for no apparent reason.] git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6310 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
e808930793aeddc4cfd3e7a94b665913bec2566c |
|
17-Oct-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track SysRes change. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6294 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
e4b0bf07b0ee0a18eacc5aba91686ab5fc1d327b |
|
06-Jun-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
c0a02f88a9b5ca7cebebf67e1f2f5ebcadb1e238 |
|
07-Apr-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Oops: when adding translations to the auxiliary transtab, don't forget to ensure D-I cache coherence. Fixes SIGILLs in fn wrapping failures on low end PowerPCs. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5835 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
78c0c09d429c95115e826ef769ecaa6cff2ac338 |
|
13-Jan-2006 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Use VG_(am_mmap_anon_float_valgrind) to allocate the unredirected translation cache. This ensures that the cache space is executable which it isn't when it is allocated as a static variable in the data segment, at least on my amd64 box. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5525 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
0ec07f32bbbb209d749b9974408e6f025ad40b31 |
|
12-Jan-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge in function wrapping support from the FNWRAP branch. That branch hereby becomes inactive. This currently breaks everything except x86; fixes for amd64/ppc32 to follow. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5520 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
3387dda4479102751d544c176a7bfc24f3766669 |
|
26-Dec-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
More dispatcher tuning for ppc32/64. Makes a big difference for perf/tinycc. - run_thread_for_a_while: just clear this thread's reservation when starting, not all of them. - use a different fast-cache hashing function for ppc32/64 than for x86/amd64. This allows the former to use all the fast-cache entries rather than just 1/4 of them. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5441 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
1f0d814045aba94e01e62e04e968ca8b970b3d44 |
|
23-Dec-2005 |
cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track changes to PPC naming convention - VEX r1504 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5416 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
5096a39f831d8f7d9dbdfb43e0de0d8b13d4d950 |
|
13-Dec-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Improve vg_SP_update_pass() to catch more constant offset cases. Improves performance by 1--3% on several programs on my machine. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5331 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
2c48c7b0a453d32375a4df17e153011b797ef28c |
|
29-Nov-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add framework for ppc64 support. Apologies in advance for the inevitable breakage to other platforms. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5250 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
e3826cfe34ec9a0caa570a0d15647b28711584a0 |
|
13-Nov-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Hook the ppc32 stuff up to the revised CPU detection machinery, and add a bunch of code to detect what the cpu can do at startup by catching SIGILLs. Shame PPC doesn't offer any sane mechanism for finding out what instruction subsets the CPU is capable of (a la x86/amd64 cpuid). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5108 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
65e193939481231a8f6699201258e0a2828357e8 |
|
19-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Snap up some easy pickings pointed out by cachegrinding nulgrind on ppc32. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4945 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
4ba057cce1d81a949f5a899b5abb99e90a731bcc |
|
18-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Change the core-tool interface so that tools are fully aware of both 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
/external/valgrind/coregrind/m_transtab.c
|
6c1bbbb1799cc34d05e2c1bae06f5533151eaaa3 |
|
18-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add extra auxiliary data structures which make it possible to quickly find and delete all translations intersecting with small address ranges (8 k or less, currently). This makes it possible to simulate ppc32 icbi instructions in reasonable time, and finally makes the ppc32 port run at a usable speed. The scheme is based around partitioning translations into equivalence classes based on address ranges. For deletions whose range falls within a single class, all translations intersecting it can be found by inspecting just that class and one other. Given that there are 256 classes, this cuts the cost, relative to scanning the entire TC, by approximately half that factor (viz, 128), assuming the translations are distributed evenly over the classes. The whole business is more complex and difficult than I would like. A detailed comment will later be added. Very thorough sanity checking has been added (sanity_check_eclasses_in_sector). This is engaged at --sanity-level=4 and above. The TT hash function (HASH_TT) has been improved to reduce its tendency to cluster TT entries in some circumstances. This has allowed the TT maximum loading factor to be increased from 66% to 80% and so the absolute size of the TC (in each sector) to be less than 2^16 entries. The latter change is important for the fast-deletion changes. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4942 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
3786772222c5b31fd6cc5586bcd1ce0da58f1dbe |
|
12-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Notify the tool via tool_discard_basic_block_info() about translations thrown away due to lack of space. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4908 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
5155dec2ac1d0855fcdc5060503e1d98a281b26a |
|
12-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Redo the way cachegrind generates instrumentation code, so that it can 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
/external/valgrind/coregrind/m_transtab.c
|
0fd92f4126a029b2c73fd217b337121c38070066 |
|
06-Oct-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Changed some overflow-prone counters from UInt to ULong. Changed some printf specifiers accordingly, plus some more that were incorrect. Also put commas in various output numbers, eg. the leak check stats. This makes them much easier to read when they get big. One exception is in XML number-only fields such as <leakedbytes>. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4874 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
a16ea0a5fa05dac343e63feddf63f51cb0c340bd |
|
30-Sep-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
When a sector is full, debug-print TC/TT loading for it, so as to give better info on sizing decisions. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4837 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
34483bcaeda3136ec238bcfd7f9e691cf8a6d0dc |
|
28-Sep-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Increase some sizes to deal better with the new multigigabyte world: - on 64-bit platforms, double the size of the supported address space to 32G. - Increase the size of the ExeContext table 6 times. Some very large apps have been observed to have been doing a lot of searching in the old 4999 entry table. This table may be OSetified in the fullness of time. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4808 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
45f4e7c91119c7d01a59f5e827c67841632c9314 |
|
27-Sep-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This commit merges in changes from branches/ASPACEM (specifically, 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
/external/valgrind/coregrind/m_transtab.c
|
a30545069556d3dca4ca3feb7c621bdcb7b34107 |
|
27-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make VG_(discard_translations) 64-bit clean. As JosefW points out, it doesn't make much sense to have a 64-bit base address but only a 32-bit length. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4273 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
1bf724aa02205d70a8ce168b5eb477f21bb0bfd1 |
|
27-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix a very suspicious-looking bug in the translation-discard stuff. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4272 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
26412bd2c4ef3e55683141f132ebd1eb32d8530b |
|
07-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Support for self modifying code on unfriendly platforms (x86, amd64) via the use of self-checking translations. (Friendly platforms which have icache-invalidation instructions we can observe, such as ppc32, are already handled correctly.) This should finally fix the longstanding problem of V incorrectly handling calls of statically nested functions (a gcc extension), and more generally make it a lot easier to use V to debug dynamic code generation systems. Since self-checking is a large performance overhead, there is some control via a command line flag: --smc-support=none Don't make any translations self-checking. --smc-support=stack Add checking code for translations taken from segments which have the SF_GROWDOWN flag set -- stacks, basically. This is the default. It should make gcc nested functions and GNU Ada work correctly with no intervention from the user. --smc-support=all Make all translations self-checking. This is expensive and you want to do this if you're debugging a JIT compiler or some such. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4122 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
2bf6ba55b04ea9a58098f041c5ee149539c0f081 |
|
30-Jun-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Restrict assertion to cache lines we know we need. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4068 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
db8f033805acb0a7fe53052b04726b8aedbd8cf8 |
|
29-Jun-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
It's official. I am a moron. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4053 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
10f08cf5b84882eebbb6712a7be890577650e8ad |
|
29-Jun-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
ppc32: reinstate collection of cache-line-size info from the auxv array at startup. This is used in m_transtab. However this info is not yet fed to Vex, so it's still important to zero-out the auxv field holding cache line size info passed to the client, so as to stop the client's glibc using dcbz. This will be fixed. Also get rid of a bunch more ppc32-specific vdso stuff in m_main that doesn't need to be done. This now means ppc32-linux specifics in m_main are only marginally intrusive than the x86-linux or amd64-linux specifics in m_main. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4052 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
2025cf98a3210c175a90fc77cb599cca1643bd68 |
|
26-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Break up VG_(show_BB_profile)(), and move half of it into m_main. This removes m_transtab's dependence on m_translate (breaking a circular dependence) and m_debuginfo, hooray. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4035 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
856c54e8c6a56e5a29124a5ee3cb12b37b850342 |
|
26-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Combine the percentify() functions from Cachegrind and m_transtab into a single more general one exported from m_libcprint. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4034 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
d666ea764c78610934bd995eb1c5007d9cd9d56d |
|
26-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove empty sanity check function. And clean up sanity checking in m_scheduler a little. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4033 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
85665ca6fa29dd64754dabe50eb98f25896e752a |
|
20-Jun-2005 |
cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Finally, valgrind on ppc32. Plenty still to do, but simple programs like ls seem to run ok Thanks, Paul, for having your ppc port of valgrind 2.4 to work from! git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3969 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
24a6efb2f94eb0cb5d53174d580e1dc00893a6d6 |
|
20-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove some unnecessary #includes, comment some others. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3966 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
394213a582d2c388eea41c142b4455fb8c2c48a4 |
|
19-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Move VG_(bbs_done) out of main and make it local in scheduler.c. This removes the dependence of m_translate.c and m_libcassert.c on m_main.c. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3954 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
c7561b931e249acf3768ead77638545b0ccaa8f1 |
|
19-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Final commit for the initial modularisation pass: - Broke part of m_scheduler off into a new module m_threadstate. It contains ThreadState, VG_(threads)[] and some basic operations on the thread table. All simple stuff, the complex stuff stays in m_scheduler. This avoids lots of circular dependencies between m_scheduler and other modules. - Managed to finally remove core.h and tool.h, double hurrah! - Introduced pub_tool_basics.h and pub_core_basics.h, one of which is include by every single C file. - Lots of little cleanups and changes related to the above. - I even did a small amount of documentation updating. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3944 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
e9befc6536670e4a494b7035363fc080eda98644 |
|
11-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularised the libc low-level memory management stuff (mmap, etc). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3891 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
132bfccd21960e462352175f8553a5bdce8a210c |
|
04-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularised assertions and panics in m_libcassert. As part of this, killed the VG_STRINGIFY macro, which was used to expand out names like "VG_(foo)" and "vgPlain_foo" in assertion failure messages. This is good since we actually want the "VG_(foo)" form used in these messages. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3842 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
36a20fa5f779a0a6fb7b4a90dcaa6376481f1faa |
|
03-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularise printing functions in m_libcprint. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3840 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
97405b2d134b52880d6dbec3eb2929e2002c2542 |
|
02-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Started modularising vg_mylibc. Put all the standalone stuff -- ie. not relying on any other modules -- in m_libcbase. Also converted the 'size' parameters to functions like VG_(memcpy) and VG_(strncpy) from Int to SizeT, as they should be. Also removed VG_(atoll16) and VG_(toupper), which weren't being used. Also made VG_(atoll36) less flexible -- it now only does base-36 numbers instead of any base in the range 2..36, since base-36 is the only one we need. As part of that, I fixed a horrible bug in it which caused it to return incorrect answers for any number containing the digits 'A'..'I'! (Eg. for "A; it would return 17 instead of 10!) Had to disable the assertions in VG_(string_match), since this module can't see vg_assert, which wasn't ideal but also isn't a disaster. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3838 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
ea27e4627518665dd6c81213c0ba1f7ff0218e1a |
|
31-May-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularised all the debug info stuff as m_debuginfo/. It's a mess and needs further cleaning up, but it's a start. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3821 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
2024234c590f408994b373abfb00bc2cd2a90c48 |
|
17-May-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Added module m_options for holding all the command-line option stuff. Perhaps parts of process_cmd_line_option() should go in here, but I've not done that for now. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3751 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|
8bddf58af8cc7342d4bde6712c5a6a33bf2850d4 |
|
14-May-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularised vg_transtab.c as m_transtab. Renamed add_to_trans_tab() as add_to_transtab() for consistency with the other names. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3703 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_transtab.c
|