|
From: Vasily G. <vas...@gm...> - 2013-08-05 13:02:04
|
Hello, all. I am searching some ideas for Valgrind's improvements where I can help. For me, changes connected with ARM (or general, like speed improvements) are quite interesting. I have some experience with Valgrind - implementation of some instructions from ARM and Thumb instruction sets. In fact, for me as ARM user, the main limiting factor for Valgrind is its speed. Maybe it is possible somehow to increase it? I have read articles about Valgrind (internal structure, shadow memory, etc.). I have some ideas but I am not sure that they are good enough (and speed improvements is not obvious). Here I placed the list of them: 1. Think about some new optimization during IR -> binary code conversion after instrumentation. Maybe there are some new optimizations (see at LLVM sources?) that can be implemented in Valgrind for speed? Some ARM-specific optimizations? 2. Maybe we can slightly (introduce new flag?) increase memory consumption but increase the speed? (increase cache size for compiled blocks?) 3. Now SETEND (feature of changing little\big endian) instruction for ARM is not implemented. Maybe it is OK to implement it (big changes?) and support big endianess for ARM? It will be also necessary to rewrite a lot of instructions parsing in VEX. 4. Think about next ARM (v8 ?) and some new instructions\features that can be realized? In fact, if the project will be quite big\complex, I think I can ask a couple of people to help with it. Any comments\ideas are welcome! -- Thank you in advance, Vasily |