|
From: Josef W. <Jos...@gm...> - 2005-10-08 20:45:12
|
On Saturday 08 October 2005 21:58, sv...@va... wrote: > Author: sewardj > Date: 2005-10-08 20:58:48 +0100 (Sat, 08 Oct 2005) > New Revision: 1418 > > Log: > Handle the out-of-range shift cases for slw/srw in a different way > which creates less IR and fewer insns at the back end. Worth about 2% > running bzip2 -d with --tool=none. Hi Julian, how did you find out about optimizing this? Obviously there doesn't exist any profiling tool which allows annotation of code in anonymous mappings, i.e. generated code by a VM or Valgrind. A while ago I had the idea to make Valgrinds translation cache persistant (backed up by a file with mmap). This way, a profile tool can annotate generated code (as the code relates to an existing file). Do you think this is possible? If yes, it would be even better if the TC could optionally loose its "cache character" and simply grow (if VM space allows this). If we additionally generate debug info, it should be possible to relate the generated code back to original client code. Hmmm... this leads to a further question: Could a persistant translation cache speed up Valgrind, by simply executing the "pre-translated" code chunks from an earlier run? In multiple runs, shared objects can be mapped to different addresses. So the translation cache should be separated by shared objects. But this would need a (object/offset) tuple as lookup key instead of a simple code address. Just ideas ;-) Josef |